From 31a3488bf4ab3dd25dc107e7378a5b459422890a Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 8 Jun 2021 04:44:07 +0000 Subject: [PATCH] CodeGen from PR 14410 in Azure/azure-rest-api-specs Merge c8280229f01fea3149aeac61f7341d09409a7bba into 04adf299cf13fc31321c3ebaee7f78895afd1e49 --- .../Scripts/Find_1passAdeVersion_VM.ps1 | 190 +- .../Scripts/Find_1passAdeVersion_VMSS.ps1 | 182 +- .../desktopvirtualization/.gitattributes | 1 + swaggerci/desktopvirtualization/.gitignore | 5 + .../Az.DesktopVirtualizationApi.csproj | 43 + .../Az.DesktopVirtualizationApi.format.ps1xml | 4415 ++++++ .../Az.DesktopVirtualizationApi.nuspec | 32 + .../Az.DesktopVirtualizationApi.psd1 | 24 + .../Az.DesktopVirtualizationApi.psm1 | 109 + .../desktopvirtualization/MSSharedLibKey.snk | Bin 0 -> 160 bytes .../desktopvirtualization/build-module.ps1 | 159 + .../check-dependencies.ps1 | 64 + .../create-model-cmdlets.ps1 | 165 + .../Az.DesktopVirtualizationApi.custom.psm1 | 17 + .../desktopvirtualization/custom/readme.md | 41 + .../docs/Az.DesktopVirtualizationApi.md | 145 + ...t-AzDesktopVirtualizationApiUserSession.md | 242 + ...and-AzDesktopVirtualizationApiMsixImage.md | 246 + ...t-AzDesktopVirtualizationApiApplication.md | 186 + ...esktopVirtualizationApiApplicationGroup.md | 193 + .../Get-AzDesktopVirtualizationApiDesktop.md | 186 + .../Get-AzDesktopVirtualizationApiHostPool.md | 177 + ...tualizationApiHostPoolRegistrationToken.md | 196 + ...t-AzDesktopVirtualizationApiMsixPackage.md | 186 + ...tualizationApiPrivateEndpointConnection.md | 219 + ...topVirtualizationApiPrivateLinkResource.md | 142 + ...t-AzDesktopVirtualizationApiScalingPlan.md | 198 + ...t-AzDesktopVirtualizationApiSessionHost.md | 186 + ...AzDesktopVirtualizationApiStartMenuItem.md | 120 + ...-AzDesktopVirtualizationApiUpdateDetail.md | 171 + ...pVirtualizationApiUpdateOperationResult.md | 195 + ...ationApiUpdateValidationOperationResult.md | 196 + ...t-AzDesktopVirtualizationApiUserSession.md | 223 + ...Get-AzDesktopVirtualizationApiWorkspace.md | 177 + ...pVirtualizationApiControlHostPoolUpdate.md | 263 + ...w-AzDesktopVirtualizationApiApplication.md | 335 + ...esktopVirtualizationApiApplicationGroup.md | 485 + .../New-AzDesktopVirtualizationApiHostPool.md | 886 ++ ...w-AzDesktopVirtualizationApiMsixPackage.md | 359 + ...w-AzDesktopVirtualizationApiScalingPlan.md | 531 + ...New-AzDesktopVirtualizationApiWorkspace.md | 454 + ...e-AzDesktopVirtualizationApiApplication.md | 226 + ...esktopVirtualizationApiApplicationGroup.md | 211 + ...move-AzDesktopVirtualizationApiHostPool.md | 227 + ...e-AzDesktopVirtualizationApiMsixPackage.md | 227 + ...tualizationApiPrivateEndpointConnection.md | 255 + ...e-AzDesktopVirtualizationApiScalingPlan.md | 211 + ...e-AzDesktopVirtualizationApiSessionHost.md | 242 + ...e-AzDesktopVirtualizationApiUserSession.md | 257 + ...ove-AzDesktopVirtualizationApiWorkspace.md | 211 + ...ktopVirtualizationApiUserSessionMessage.md | 309 + ...e-AzDesktopVirtualizationApiApplication.md | 399 + ...esktopVirtualizationApiApplicationGroup.md | 243 + ...pdate-AzDesktopVirtualizationApiDesktop.md | 258 + ...date-AzDesktopVirtualizationApiHostPool.md | 654 + ...-AzDesktopVirtualizationApiHostPoolPost.md | 360 + ...e-AzDesktopVirtualizationApiMsixPackage.md | 259 + ...e-AzDesktopVirtualizationApiScalingPlan.md | 348 + ...e-AzDesktopVirtualizationApiSessionHost.md | 243 + ...ate-AzDesktopVirtualizationApiWorkspace.md | 275 + .../desktopvirtualization/docs/readme.md | 11 + ...t-AzDesktopVirtualizationApiUserSession.md | 18 + ...and-AzDesktopVirtualizationApiMsixImage.md | 18 + ...t-AzDesktopVirtualizationApiApplication.md | 18 + ...esktopVirtualizationApiApplicationGroup.md | 18 + .../Get-AzDesktopVirtualizationApiDesktop.md | 18 + .../Get-AzDesktopVirtualizationApiHostPool.md | 18 + ...tualizationApiHostPoolRegistrationToken.md | 18 + ...t-AzDesktopVirtualizationApiMsixPackage.md | 18 + ...tualizationApiPrivateEndpointConnection.md | 18 + ...topVirtualizationApiPrivateLinkResource.md | 18 + ...t-AzDesktopVirtualizationApiScalingPlan.md | 18 + ...t-AzDesktopVirtualizationApiSessionHost.md | 18 + ...AzDesktopVirtualizationApiStartMenuItem.md | 18 + ...-AzDesktopVirtualizationApiUpdateDetail.md | 18 + ...pVirtualizationApiUpdateOperationResult.md | 18 + ...ationApiUpdateValidationOperationResult.md | 18 + ...t-AzDesktopVirtualizationApiUserSession.md | 18 + ...Get-AzDesktopVirtualizationApiWorkspace.md | 18 + ...pVirtualizationApiControlHostPoolUpdate.md | 18 + ...w-AzDesktopVirtualizationApiApplication.md | 18 + ...esktopVirtualizationApiApplicationGroup.md | 18 + .../New-AzDesktopVirtualizationApiHostPool.md | 18 + ...w-AzDesktopVirtualizationApiMsixPackage.md | 18 + ...w-AzDesktopVirtualizationApiScalingPlan.md | 18 + ...New-AzDesktopVirtualizationApiWorkspace.md | 18 + ...e-AzDesktopVirtualizationApiApplication.md | 18 + ...esktopVirtualizationApiApplicationGroup.md | 18 + ...move-AzDesktopVirtualizationApiHostPool.md | 18 + ...e-AzDesktopVirtualizationApiMsixPackage.md | 18 + ...tualizationApiPrivateEndpointConnection.md | 18 + ...e-AzDesktopVirtualizationApiScalingPlan.md | 18 + ...e-AzDesktopVirtualizationApiSessionHost.md | 18 + ...e-AzDesktopVirtualizationApiUserSession.md | 18 + ...ove-AzDesktopVirtualizationApiWorkspace.md | 18 + ...ktopVirtualizationApiUserSessionMessage.md | 18 + ...e-AzDesktopVirtualizationApiApplication.md | 18 + ...esktopVirtualizationApiApplicationGroup.md | 18 + ...pdate-AzDesktopVirtualizationApiDesktop.md | 18 + ...date-AzDesktopVirtualizationApiHostPool.md | 18 + ...-AzDesktopVirtualizationApiHostPoolPost.md | 18 + ...e-AzDesktopVirtualizationApiMsixPackage.md | 18 + ...e-AzDesktopVirtualizationApiScalingPlan.md | 18 + ...e-AzDesktopVirtualizationApiSessionHost.md | 18 + ...ate-AzDesktopVirtualizationApiWorkspace.md | 18 + .../desktopvirtualization/export-surface.ps1 | 40 + ...-AzDesktopVirtualizationApiUserSession.ps1 | 192 + ...nd-AzDesktopVirtualizationApiMsixImage.ps1 | 199 + ...-AzDesktopVirtualizationApiApplication.ps1 | 185 + ...sktopVirtualizationApiApplicationGroup.ps1 | 187 + .../Get-AzDesktopVirtualizationApiDesktop.ps1 | 184 + ...Get-AzDesktopVirtualizationApiHostPool.ps1 | 179 + ...ualizationApiHostPoolRegistrationToken.ps1 | 173 + ...-AzDesktopVirtualizationApiMsixPackage.ps1 | 184 + ...ualizationApiPrivateEndpointConnection.ps1 | 200 + ...opVirtualizationApiPrivateLinkResource.ps1 | 151 + ...-AzDesktopVirtualizationApiScalingPlan.ps1 | 188 + ...-AzDesktopVirtualizationApiSessionHost.ps1 | 184 + ...zDesktopVirtualizationApiStartMenuItem.ps1 | 144 + ...AzDesktopVirtualizationApiUpdateDetail.ps1 | 177 + ...VirtualizationApiUpdateOperationResult.ps1 | 185 + ...tionApiUpdateValidationOperationResult.ps1 | 185 + ...-AzDesktopVirtualizationApiUserSession.ps1 | 202 + ...et-AzDesktopVirtualizationApiWorkspace.ps1 | 179 + ...VirtualizationApiControlHostPoolUpdate.ps1 | 206 + ...-AzDesktopVirtualizationApiApplication.ps1 | 220 + ...sktopVirtualizationApiApplicationGroup.ps1 | 289 + ...New-AzDesktopVirtualizationApiHostPool.ps1 | 470 + ...-AzDesktopVirtualizationApiMsixPackage.ps1 | 240 + ...-AzDesktopVirtualizationApiScalingPlan.ps1 | 324 + ...ew-AzDesktopVirtualizationApiWorkspace.ps1 | 276 + .../exports/ProxyCmdletDefinitions.ps1 | 9323 ++++++++++++ ...-AzDesktopVirtualizationApiApplication.ps1 | 187 + ...sktopVirtualizationApiApplicationGroup.ps1 | 180 + ...ove-AzDesktopVirtualizationApiHostPool.ps1 | 186 + ...-AzDesktopVirtualizationApiMsixPackage.ps1 | 186 + ...ualizationApiPrivateEndpointConnection.ps1 | 198 + ...-AzDesktopVirtualizationApiScalingPlan.ps1 | 180 + ...-AzDesktopVirtualizationApiSessionHost.ps1 | 192 + ...-AzDesktopVirtualizationApiUserSession.ps1 | 198 + ...ve-AzDesktopVirtualizationApiWorkspace.ps1 | 180 + ...topVirtualizationApiUserSessionMessage.ps1 | 227 + ...-AzDesktopVirtualizationApiApplication.ps1 | 256 + ...sktopVirtualizationApiApplicationGroup.ps1 | 193 + ...date-AzDesktopVirtualizationApiDesktop.ps1 | 199 + ...ate-AzDesktopVirtualizationApiHostPool.ps1 | 370 + ...AzDesktopVirtualizationApiHostPoolPost.ps1 | 241 + ...-AzDesktopVirtualizationApiMsixPackage.ps1 | 199 + ...-AzDesktopVirtualizationApiScalingPlan.ps1 | 250 + ...-AzDesktopVirtualizationApiSessionHost.ps1 | 192 + ...te-AzDesktopVirtualizationApiWorkspace.ps1 | 206 + .../desktopvirtualization/exports/readme.md | 20 + .../desktopvirtualization/generate-help.ps1 | 73 + .../desktopvirtualization/generated/Module.cs | 158 + .../api/DesktopVirtualizationApiClient.cs | 12631 ++++++++++++++++ .../api/Models/Api10/Identity.PowerShell.cs | 135 + .../Models/Api10/Identity.TypeConverter.cs | 142 + .../generated/api/Models/Api10/Identity.cs | 86 + .../api/Models/Api10/Identity.json.cs | 111 + .../api/Models/Api10/Plan.PowerShell.cs | 139 + .../api/Models/Api10/Plan.TypeConverter.cs | 142 + .../generated/api/Models/Api10/Plan.cs | 129 + .../generated/api/Models/Api10/Plan.json.cs | 109 + .../Api10/PrivateEndpoint.PowerShell.cs | 131 + .../Api10/PrivateEndpoint.TypeConverter.cs | 142 + .../api/Models/Api10/PrivateEndpoint.cs | 49 + .../api/Models/Api10/PrivateEndpoint.json.cs | 104 + .../PrivateEndpointConnection.PowerShell.cs | 153 + ...PrivateEndpointConnection.TypeConverter.cs | 142 + .../Models/Api10/PrivateEndpointConnection.cs | 182 + .../Api10/PrivateEndpointConnection.json.cs | 103 + ...EndpointConnectionProperties.PowerShell.cs | 145 + ...pointConnectionProperties.TypeConverter.cs | 143 + .../PrivateEndpointConnectionProperties.cs | 145 + ...rivateEndpointConnectionProperties.json.cs | 106 + ...teLinkServiceConnectionState.PowerShell.cs | 139 + ...inkServiceConnectionState.TypeConverter.cs | 142 + .../PrivateLinkServiceConnectionState.cs | 94 + .../PrivateLinkServiceConnectionState.json.cs | 107 + .../api/Models/Api10/Resource.PowerShell.cs | 137 + .../Models/Api10/Resource.TypeConverter.cs | 142 + .../generated/api/Models/Api10/Resource.cs | 103 + .../api/Models/Api10/Resource.json.cs | 116 + ...eModelWithAllowedPropertySet.PowerShell.cs | 183 + ...delWithAllowedPropertySet.TypeConverter.cs | 143 + .../ResourceModelWithAllowedPropertySet.cs | 499 + ...esourceModelWithAllowedPropertySet.json.cs | 137 + ...thAllowedPropertySetIdentity.PowerShell.cs | 136 + ...llowedPropertySetIdentity.TypeConverter.cs | 145 + ...urceModelWithAllowedPropertySetIdentity.cs | 65 + ...odelWithAllowedPropertySetIdentity.json.cs | 102 + ...elWithAllowedPropertySetPlan.PowerShell.cs | 140 + ...ithAllowedPropertySetPlan.TypeConverter.cs | 145 + ...ResourceModelWithAllowedPropertySetPlan.cs | 70 + ...rceModelWithAllowedPropertySetPlan.json.cs | 102 + ...delWithAllowedPropertySetSku.PowerShell.cs | 140 + ...WithAllowedPropertySetSku.TypeConverter.cs | 145 + .../ResourceModelWithAllowedPropertySetSku.cs | 75 + ...urceModelWithAllowedPropertySetSku.json.cs | 101 + ...elWithAllowedPropertySetTags.PowerShell.cs | 136 + ...ithAllowedPropertySetTags.TypeConverter.cs | 145 + ...ResourceModelWithAllowedPropertySetTags.cs | 30 + ...elWithAllowedPropertySetTags.dictionary.cs | 70 + ...rceModelWithAllowedPropertySetTags.json.cs | 104 + .../api/Models/Api10/Sku.PowerShell.cs | 139 + .../api/Models/Api10/Sku.TypeConverter.cs | 142 + .../generated/api/Models/Api10/Sku.cs | 144 + .../generated/api/Models/Api10/Sku.json.cs | 109 + .../api/Models/Api20/SystemData.PowerShell.cs | 141 + .../Models/Api20/SystemData.TypeConverter.cs | 142 + .../generated/api/Models/Api20/SystemData.cs | 131 + .../api/Models/Api20/SystemData.json.cs | 111 + .../Application.PowerShell.cs | 181 + .../Application.TypeConverter.cs | 142 + .../Models/Api20210513Preview/Application.cs | 395 + .../Api20210513Preview/Application.json.cs | 108 + .../ApplicationGroup.PowerShell.cs | 215 + .../ApplicationGroup.TypeConverter.cs | 142 + .../Api20210513Preview/ApplicationGroup.cs | 441 + .../ApplicationGroup.json.cs | 108 + .../ApplicationGroupList.PowerShell.cs | 135 + .../ApplicationGroupList.TypeConverter.cs | 142 + .../ApplicationGroupList.cs | 66 + .../ApplicationGroupList.json.cs | 114 + .../ApplicationGroupPatch.PowerShell.cs | 145 + .../ApplicationGroupPatch.TypeConverter.cs | 142 + .../ApplicationGroupPatch.cs | 130 + .../ApplicationGroupPatch.json.cs | 105 + ...licationGroupPatchProperties.PowerShell.cs | 135 + ...ationGroupPatchProperties.TypeConverter.cs | 142 + .../ApplicationGroupPatchProperties.cs | 63 + .../ApplicationGroupPatchProperties.json.cs | 103 + .../ApplicationGroupPatchTags.PowerShell.cs | 135 + ...ApplicationGroupPatchTags.TypeConverter.cs | 142 + .../ApplicationGroupPatchTags.cs | 30 + .../ApplicationGroupPatchTags.dictionary.cs | 70 + .../ApplicationGroupPatchTags.json.cs | 102 + .../ApplicationGroupProperties.PowerShell.cs | 151 + ...pplicationGroupProperties.TypeConverter.cs | 142 + .../ApplicationGroupProperties.cs | 197 + .../ApplicationGroupProperties.json.cs | 124 + .../ApplicationList.PowerShell.cs | 135 + .../ApplicationList.TypeConverter.cs | 142 + .../Api20210513Preview/ApplicationList.cs | 66 + .../ApplicationList.json.cs | 114 + .../ApplicationPatch.PowerShell.cs | 157 + .../ApplicationPatch.TypeConverter.cs | 142 + .../Api20210513Preview/ApplicationPatch.cs | 221 + .../ApplicationPatch.json.cs | 103 + .../ApplicationPatchProperties.PowerShell.cs | 153 + ...pplicationPatchProperties.TypeConverter.cs | 142 + .../ApplicationPatchProperties.cs | 225 + .../ApplicationPatchProperties.json.cs | 121 + .../ApplicationPatchTags.PowerShell.cs | 135 + .../ApplicationPatchTags.TypeConverter.cs | 142 + .../ApplicationPatchTags.cs | 30 + .../ApplicationPatchTags.dictionary.cs | 70 + .../ApplicationPatchTags.json.cs | 102 + .../ApplicationProperties.PowerShell.cs | 159 + .../ApplicationProperties.TypeConverter.cs | 142 + .../ApplicationProperties.cs | 285 + .../ApplicationProperties.json.cs | 136 + .../CloudError.PowerShell.cs | 135 + .../CloudError.TypeConverter.cs | 142 + .../Models/Api20210513Preview/CloudError.cs | 65 + .../Api20210513Preview/CloudError.json.cs | 100 + .../CloudErrorProperties.PowerShell.cs | 133 + .../CloudErrorProperties.TypeConverter.cs | 142 + .../CloudErrorProperties.cs | 60 + .../CloudErrorProperties.json.cs | 102 + .../CredentialsProperties.PowerShell.cs | 147 + .../CredentialsProperties.TypeConverter.cs | 142 + .../CredentialsProperties.cs | 137 + .../CredentialsProperties.json.cs | 103 + .../Api20210513Preview/Desktop.PowerShell.cs | 163 + .../Desktop.TypeConverter.cs | 142 + .../api/Models/Api20210513Preview/Desktop.cs | 260 + .../Models/Api20210513Preview/Desktop.json.cs | 108 + .../DesktopList.PowerShell.cs | 135 + .../DesktopList.TypeConverter.cs | 142 + .../Models/Api20210513Preview/DesktopList.cs | 66 + .../Api20210513Preview/DesktopList.json.cs | 114 + .../DesktopPatch.PowerShell.cs | 139 + .../DesktopPatch.TypeConverter.cs | 142 + .../Models/Api20210513Preview/DesktopPatch.cs | 86 + .../Api20210513Preview/DesktopPatch.json.cs | 103 + .../DesktopPatchProperties.PowerShell.cs | 135 + .../DesktopPatchProperties.TypeConverter.cs | 142 + .../DesktopPatchProperties.cs | 63 + .../DesktopPatchProperties.json.cs | 103 + .../DesktopPatchTags.PowerShell.cs | 135 + .../DesktopPatchTags.TypeConverter.cs | 142 + .../Api20210513Preview/DesktopPatchTags.cs | 30 + .../DesktopPatchTags.dictionary.cs | 70 + .../DesktopPatchTags.json.cs | 102 + .../DesktopProperties.PowerShell.cs | 141 + .../DesktopProperties.TypeConverter.cs | 142 + .../Api20210513Preview/DesktopProperties.cs | 123 + .../DesktopProperties.json.cs | 118 + .../DomainInfoProperties.PowerShell.cs | 155 + .../DomainInfoProperties.TypeConverter.cs | 142 + .../DomainInfoProperties.cs | 192 + .../DomainInfoProperties.json.cs | 107 + .../ExpandMsixImage.PowerShell.cs | 167 + .../ExpandMsixImage.TypeConverter.cs | 142 + .../Api20210513Preview/ExpandMsixImage.cs | 275 + .../ExpandMsixImage.json.cs | 105 + .../ExpandMsixImageList.PowerShell.cs | 135 + .../ExpandMsixImageList.TypeConverter.cs | 142 + .../Api20210513Preview/ExpandMsixImageList.cs | 66 + .../ExpandMsixImageList.json.cs | 114 + .../ExpandMsixImageProperties.PowerShell.cs | 157 + ...ExpandMsixImageProperties.TypeConverter.cs | 142 + .../ExpandMsixImageProperties.cs | 256 + .../ExpandMsixImageProperties.json.cs | 141 + .../Api20210513Preview/HostPool.PowerShell.cs | 273 + .../HostPool.TypeConverter.cs | 142 + .../api/Models/Api20210513Preview/HostPool.cs | 846 ++ .../Api20210513Preview/HostPool.json.cs | 108 + .../HostPoolControlParameter.PowerShell.cs | 133 + .../HostPoolControlParameter.TypeConverter.cs | 142 + .../HostPoolControlParameter.cs | 46 + .../HostPoolControlParameter.json.cs | 101 + .../HostPoolList.PowerShell.cs | 135 + .../HostPoolList.TypeConverter.cs | 142 + .../Models/Api20210513Preview/HostPoolList.cs | 66 + .../Api20210513Preview/HostPoolList.json.cs | 114 + .../HostPoolPatch.PowerShell.cs | 201 + .../HostPoolPatch.TypeConverter.cs | 142 + .../Api20210513Preview/HostPoolPatch.cs | 509 + .../Api20210513Preview/HostPoolPatch.json.cs | 105 + .../HostPoolPatchProperties.PowerShell.cs | 191 + .../HostPoolPatchProperties.TypeConverter.cs | 142 + .../HostPoolPatchProperties.cs | 505 + .../HostPoolPatchProperties.json.cs | 137 + .../HostPoolPatchTags.PowerShell.cs | 135 + .../HostPoolPatchTags.TypeConverter.cs | 142 + .../Api20210513Preview/HostPoolPatchTags.cs | 30 + .../HostPoolPatchTags.dictionary.cs | 70 + .../HostPoolPatchTags.json.cs | 102 + .../HostPoolProperties.PowerShell.cs | 209 + .../HostPoolProperties.TypeConverter.cs | 142 + .../Api20210513Preview/HostPoolProperties.cs | 667 + .../HostPoolProperties.json.cs | 169 + .../HostPoolUpdate.PowerShell.cs | 151 + .../HostPoolUpdate.TypeConverter.cs | 142 + .../Api20210513Preview/HostPoolUpdate.cs | 176 + .../Api20210513Preview/HostPoolUpdate.json.cs | 103 + ...pdateConfigurationProperties.PowerShell.cs | 148 + ...teConfigurationProperties.TypeConverter.cs | 144 + .../HostPoolUpdateConfigurationProperties.cs | 163 + ...tPoolUpdateConfigurationProperties.json.cs | 120 + .../HostPoolUpdateFault.PowerShell.cs | 139 + .../HostPoolUpdateFault.TypeConverter.cs | 142 + .../Api20210513Preview/HostPoolUpdateFault.cs | 97 + .../HostPoolUpdateFault.json.cs | 107 + ...HostPoolUpdateFullProperties.PowerShell.cs | 183 + ...tPoolUpdateFullProperties.TypeConverter.cs | 142 + .../HostPoolUpdateFullProperties.cs | 392 + .../HostPoolUpdateFullProperties.json.cs | 118 + ...PoolUpdateFullPropertiesList.PowerShell.cs | 135 + ...lUpdateFullPropertiesList.TypeConverter.cs | 142 + .../HostPoolUpdateFullPropertiesList.cs | 66 + .../HostPoolUpdateFullPropertiesList.json.cs | 114 + .../HostPoolUpdateProgress.PowerShell.cs | 151 + .../HostPoolUpdateProgress.TypeConverter.cs | 142 + .../HostPoolUpdateProgress.cs | 199 + .../HostPoolUpdateProgress.json.cs | 127 + ...PoolUpdateValidationResponse.PowerShell.cs | 135 + ...lUpdateValidationResponse.TypeConverter.cs | 142 + .../HostPoolUpdateValidationResponse.cs | 63 + .../HostPoolUpdateValidationResponse.json.cs | 119 + .../ImageInfoProperties.PowerShell.cs | 147 + .../ImageInfoProperties.TypeConverter.cs | 142 + .../Api20210513Preview/ImageInfoProperties.cs | 160 + .../ImageInfoProperties.json.cs | 107 + ...KeyvaultCredentialProperties.PowerShell.cs | 137 + ...vaultCredentialProperties.TypeConverter.cs | 142 + .../KeyvaultCredentialProperties.cs | 80 + .../KeyvaultCredentialProperties.json.cs | 105 + .../LogSpecification.PowerShell.cs | 137 + .../LogSpecification.TypeConverter.cs | 142 + .../Api20210513Preview/LogSpecification.cs | 80 + .../LogSpecification.json.cs | 105 + .../MaintenanceAlertsProperties.PowerShell.cs | 137 + ...intenanceAlertsProperties.TypeConverter.cs | 142 + .../MaintenanceAlertsProperties.cs | 86 + .../MaintenanceAlertsProperties.json.cs | 105 + .../MaintenanceWindowProperties.PowerShell.cs | 135 + ...intenanceWindowProperties.TypeConverter.cs | 142 + .../MaintenanceWindowProperties.cs | 63 + .../MaintenanceWindowProperties.json.cs | 103 + .../MarketPlaceInfoProperties.PowerShell.cs | 139 + ...MarketPlaceInfoProperties.TypeConverter.cs | 142 + .../MarketPlaceInfoProperties.cs | 97 + .../MarketPlaceInfoProperties.json.cs | 107 + .../MigrationRequestProperties.PowerShell.cs | 135 + ...igrationRequestProperties.TypeConverter.cs | 142 + .../MigrationRequestProperties.cs | 63 + .../MigrationRequestProperties.json.cs | 103 + .../MsixImageUri.PowerShell.cs | 133 + .../MsixImageUri.TypeConverter.cs | 142 + .../Models/Api20210513Preview/MsixImageUri.cs | 46 + .../Api20210513Preview/MsixImageUri.json.cs | 101 + .../MsixPackage.PowerShell.cs | 175 + .../MsixPackage.TypeConverter.cs | 142 + .../Models/Api20210513Preview/MsixPackage.cs | 341 + .../Api20210513Preview/MsixPackage.json.cs | 108 + .../MsixPackageApplications.PowerShell.cs | 145 + .../MsixPackageApplications.TypeConverter.cs | 142 + .../MsixPackageApplications.cs | 154 + .../MsixPackageApplications.json.cs | 113 + .../MsixPackageDependencies.PowerShell.cs | 137 + .../MsixPackageDependencies.TypeConverter.cs | 142 + .../MsixPackageDependencies.cs | 80 + .../MsixPackageDependencies.json.cs | 105 + .../MsixPackageList.PowerShell.cs | 135 + .../MsixPackageList.TypeConverter.cs | 142 + .../Api20210513Preview/MsixPackageList.cs | 66 + .../MsixPackageList.json.cs | 114 + .../MsixPackagePatch.PowerShell.cs | 145 + .../MsixPackagePatch.TypeConverter.cs | 142 + .../Api20210513Preview/MsixPackagePatch.cs | 127 + .../MsixPackagePatch.json.cs | 103 + .../MsixPackagePatchProperties.PowerShell.cs | 137 + ...sixPackagePatchProperties.TypeConverter.cs | 142 + .../MsixPackagePatchProperties.cs | 80 + .../MsixPackagePatchProperties.json.cs | 105 + .../MsixPackageProperties.PowerShell.cs | 153 + .../MsixPackageProperties.TypeConverter.cs | 142 + .../MsixPackageProperties.cs | 222 + .../MsixPackageProperties.json.cs | 137 + .../OperationProperties.PowerShell.cs | 135 + .../OperationProperties.TypeConverter.cs | 142 + .../Api20210513Preview/OperationProperties.cs | 55 + .../OperationProperties.json.cs | 101 + ...tionListResultWithSystemData.PowerShell.cs | 138 + ...nListResultWithSystemData.TypeConverter.cs | 147 + ...pointConnectionListResultWithSystemData.cs | 70 + ...ConnectionListResultWithSystemData.json.cs | 119 + ...ointConnectionWithSystemData.PowerShell.cs | 168 + ...tConnectionWithSystemData.TypeConverter.cs | 145 + ...PrivateEndpointConnectionWithSystemData.cs | 210 + ...teEndpointConnectionWithSystemData.json.cs | 108 + .../PrivateLinkResource.PowerShell.cs | 145 + .../PrivateLinkResource.TypeConverter.cs | 142 + .../Api20210513Preview/PrivateLinkResource.cs | 133 + .../PrivateLinkResource.json.cs | 103 + ...rivateLinkResourceListResult.PowerShell.cs | 135 + ...ateLinkResourceListResult.TypeConverter.cs | 142 + .../PrivateLinkResourceListResult.cs | 66 + .../PrivateLinkResourceListResult.json.cs | 114 + ...rivateLinkResourceProperties.PowerShell.cs | 137 + ...ateLinkResourceProperties.TypeConverter.cs | 142 + .../PrivateLinkResourceProperties.cs | 86 + .../PrivateLinkResourceProperties.json.cs | 127 + .../RegistrationInfo.PowerShell.cs | 137 + .../RegistrationInfo.TypeConverter.cs | 142 + .../Api20210513Preview/RegistrationInfo.cs | 80 + .../RegistrationInfo.json.cs | 105 + .../RegistrationInfoPatch.PowerShell.cs | 135 + .../RegistrationInfoPatch.TypeConverter.cs | 142 + .../RegistrationInfoPatch.cs | 63 + .../RegistrationInfoPatch.json.cs | 103 + .../ResourceProviderOperation.PowerShell.cs | 151 + ...ResourceProviderOperation.TypeConverter.cs | 142 + .../ResourceProviderOperation.cs | 162 + .../ResourceProviderOperation.json.cs | 107 + ...urceProviderOperationDisplay.PowerShell.cs | 139 + ...eProviderOperationDisplay.TypeConverter.cs | 142 + .../ResourceProviderOperationDisplay.cs | 97 + .../ResourceProviderOperationDisplay.json.cs | 107 + ...esourceProviderOperationList.PowerShell.cs | 135 + ...urceProviderOperationList.TypeConverter.cs | 142 + .../ResourceProviderOperationList.cs | 66 + .../ResourceProviderOperationList.json.cs | 114 + .../ScalingHostPoolReference.PowerShell.cs | 135 + .../ScalingHostPoolReference.TypeConverter.cs | 142 + .../ScalingHostPoolReference.cs | 63 + .../ScalingHostPoolReference.json.cs | 103 + .../ScalingPlan.PowerShell.cs | 211 + .../ScalingPlan.TypeConverter.cs | 142 + .../Models/Api20210513Preview/ScalingPlan.cs | 416 + .../Api20210513Preview/ScalingPlan.json.cs | 108 + .../ScalingPlanList.PowerShell.cs | 135 + .../ScalingPlanList.TypeConverter.cs | 142 + .../Api20210513Preview/ScalingPlanList.cs | 66 + .../ScalingPlanList.json.cs | 114 + .../ScalingPlanPatch.PowerShell.cs | 149 + .../ScalingPlanPatch.TypeConverter.cs | 142 + .../Api20210513Preview/ScalingPlanPatch.cs | 156 + .../ScalingPlanPatch.json.cs | 103 + .../ScalingPlanPatchProperties.PowerShell.cs | 145 + ...calingPlanPatchProperties.TypeConverter.cs | 142 + .../ScalingPlanPatchProperties.cs | 148 + .../ScalingPlanPatchProperties.json.cs | 129 + .../ScalingPlanPatchTags.PowerShell.cs | 135 + .../ScalingPlanPatchTags.TypeConverter.cs | 142 + .../ScalingPlanPatchTags.cs | 30 + .../ScalingPlanPatchTags.dictionary.cs | 70 + .../ScalingPlanPatchTags.json.cs | 102 + .../ScalingPlanProperties.PowerShell.cs | 147 + .../ScalingPlanProperties.TypeConverter.cs | 142 + .../ScalingPlanProperties.cs | 168 + .../ScalingPlanProperties.json.cs | 134 + .../ScalingSchedule.PowerShell.cs | 167 + .../ScalingSchedule.TypeConverter.cs | 142 + .../Api20210513Preview/ScalingSchedule.cs | 335 + .../ScalingSchedule.json.cs | 143 + .../ScheduledTimeProperties.PowerShell.cs | 135 + .../ScheduledTimeProperties.TypeConverter.cs | 142 + .../ScheduledTimeProperties.cs | 72 + .../ScheduledTimeProperties.json.cs | 103 + .../SecondaryWindowProperties.PowerShell.cs | 139 + ...SecondaryWindowProperties.TypeConverter.cs | 142 + .../SecondaryWindowProperties.cs | 68 + .../SecondaryWindowProperties.json.cs | 114 + .../SendMessage.PowerShell.cs | 135 + .../SendMessage.TypeConverter.cs | 142 + .../Models/Api20210513Preview/SendMessage.cs | 63 + .../Api20210513Preview/SendMessage.json.cs | 103 + .../ServiceSpecification.PowerShell.cs | 133 + .../ServiceSpecification.TypeConverter.cs | 142 + .../ServiceSpecification.cs | 46 + .../ServiceSpecification.json.cs | 109 + .../SessionHost.PowerShell.cs | 195 + .../SessionHost.TypeConverter.cs | 142 + .../Models/Api20210513Preview/SessionHost.cs | 508 + .../Api20210513Preview/SessionHost.json.cs | 108 + ...pdateConfigurationProperties.PowerShell.cs | 152 + ...teConfigurationProperties.TypeConverter.cs | 147 + ...tComponentUpdateConfigurationProperties.cs | 185 + ...onentUpdateConfigurationProperties.json.cs | 114 + ...nHostConfigurationProperties.PowerShell.cs | 181 + ...stConfigurationProperties.TypeConverter.cs | 143 + .../SessionHostConfigurationProperties.cs | 372 + ...SessionHostConfigurationProperties.json.cs | 110 + ...ostHealthCheckFailureDetails.PowerShell.cs | 137 + ...HealthCheckFailureDetails.TypeConverter.cs | 144 + .../SessionHostHealthCheckFailureDetails.cs | 89 + ...ssionHostHealthCheckFailureDetails.json.cs | 115 + ...SessionHostHealthCheckReport.PowerShell.cs | 143 + ...sionHostHealthCheckReport.TypeConverter.cs | 142 + .../SessionHostHealthCheckReport.cs | 132 + .../SessionHostHealthCheckReport.json.cs | 114 + .../SessionHostList.PowerShell.cs | 135 + .../SessionHostList.TypeConverter.cs | 142 + .../Api20210513Preview/SessionHostList.cs | 66 + .../SessionHostList.json.cs | 114 + .../SessionHostPatch.PowerShell.cs | 143 + .../SessionHostPatch.TypeConverter.cs | 142 + .../Api20210513Preview/SessionHostPatch.cs | 113 + .../SessionHostPatch.json.cs | 103 + .../SessionHostPatchProperties.PowerShell.cs | 135 + ...essionHostPatchProperties.TypeConverter.cs | 142 + .../SessionHostPatchProperties.cs | 63 + .../SessionHostPatchProperties.json.cs | 103 + .../SessionHostProperties.PowerShell.cs | 173 + .../SessionHostProperties.TypeConverter.cs | 142 + .../SessionHostProperties.cs | 421 + .../SessionHostProperties.json.cs | 182 + .../StartMenuItem.PowerShell.cs | 149 + .../StartMenuItem.TypeConverter.cs | 142 + .../Api20210513Preview/StartMenuItem.cs | 155 + .../Api20210513Preview/StartMenuItem.json.cs | 103 + .../StartMenuItemList.PowerShell.cs | 135 + .../StartMenuItemList.TypeConverter.cs | 142 + .../Api20210513Preview/StartMenuItemList.cs | 66 + .../StartMenuItemList.json.cs | 114 + .../StartMenuItemProperties.PowerShell.cs | 141 + .../StartMenuItemProperties.TypeConverter.cs | 142 + .../StartMenuItemProperties.cs | 114 + .../StartMenuItemProperties.json.cs | 109 + .../UpdateStatus.PowerShell.cs | 203 + .../UpdateStatus.TypeConverter.cs | 142 + .../Models/Api20210513Preview/UpdateStatus.cs | 513 + .../Api20210513Preview/UpdateStatus.json.cs | 111 + .../UpdateStatusList.PowerShell.cs | 135 + .../UpdateStatusList.TypeConverter.cs | 142 + .../Api20210513Preview/UpdateStatusList.cs | 66 + .../UpdateStatusList.json.cs | 114 + .../UserSession.PowerShell.cs | 165 + .../UserSession.TypeConverter.cs | 142 + .../Models/Api20210513Preview/UserSession.cs | 268 + .../Api20210513Preview/UserSession.json.cs | 108 + .../UserSessionList.PowerShell.cs | 135 + .../UserSessionList.TypeConverter.cs | 142 + .../Api20210513Preview/UserSessionList.cs | 66 + .../UserSessionList.json.cs | 114 + .../UserSessionProperties.PowerShell.cs | 143 + .../UserSessionProperties.TypeConverter.cs | 142 + .../UserSessionProperties.cs | 134 + .../UserSessionProperties.json.cs | 114 + .../Workspace.PowerShell.cs | 207 + .../Workspace.TypeConverter.cs | 142 + .../Models/Api20210513Preview/Workspace.cs | 400 + .../Api20210513Preview/Workspace.json.cs | 108 + .../WorkspaceList.PowerShell.cs | 135 + .../WorkspaceList.TypeConverter.cs | 142 + .../Api20210513Preview/WorkspaceList.cs | 66 + .../Api20210513Preview/WorkspaceList.json.cs | 114 + .../WorkspacePatch.PowerShell.cs | 143 + .../WorkspacePatch.TypeConverter.cs | 142 + .../Api20210513Preview/WorkspacePatch.cs | 114 + .../Api20210513Preview/WorkspacePatch.json.cs | 103 + .../WorkspacePatchProperties.PowerShell.cs | 139 + .../WorkspacePatchProperties.TypeConverter.cs | 142 + .../WorkspacePatchProperties.cs | 97 + .../WorkspacePatchProperties.json.cs | 115 + .../WorkspacePatchTags.PowerShell.cs | 135 + .../WorkspacePatchTags.TypeConverter.cs | 142 + .../Api20210513Preview/WorkspacePatchTags.cs | 30 + .../WorkspacePatchTags.dictionary.cs | 70 + .../WorkspacePatchTags.json.cs | 102 + .../WorkspaceProperties.PowerShell.cs | 143 + .../WorkspaceProperties.TypeConverter.cs | 142 + .../Api20210513Preview/WorkspaceProperties.cs | 146 + .../WorkspaceProperties.json.cs | 125 + ...topVirtualizationApiIdentity.PowerShell.cs | 160 + ...VirtualizationApiIdentity.TypeConverter.cs | 157 + .../DesktopVirtualizationApiIdentity.cs | 258 + .../DesktopVirtualizationApiIdentity.json.cs | 129 + .../Support/ApplicationGroupType.Completer.cs | 39 + .../ApplicationGroupType.TypeConverter.cs | 59 + .../api/Support/ApplicationGroupType.cs | 98 + .../api/Support/ApplicationType.Completer.cs | 39 + .../Support/ApplicationType.TypeConverter.cs | 59 + .../generated/api/Support/ApplicationType.cs | 98 + .../Support/CommandLineSetting.Completer.cs | 46 + .../CommandLineSetting.TypeConverter.cs | 62 + .../api/Support/CommandLineSetting.cs | 103 + .../api/Support/CreatedByType.Completer.cs | 47 + .../Support/CreatedByType.TypeConverter.cs | 59 + .../generated/api/Support/CreatedByType.cs | 102 + .../api/Support/DayOfWeek.Completer.cs | 59 + .../api/Support/DayOfWeek.TypeConverter.cs | 59 + .../generated/api/Support/DayOfWeek.cs | 108 + .../api/Support/DomainJoinType.Completer.cs | 39 + .../Support/DomainJoinType.TypeConverter.cs | 59 + .../generated/api/Support/DomainJoinType.cs | 100 + .../api/Support/HealthCheckName.Completer.cs | 75 + .../Support/HealthCheckName.TypeConverter.cs | 59 + .../generated/api/Support/HealthCheckName.cs | 167 + .../Support/HealthCheckResult.Completer.cs | 47 + .../HealthCheckResult.TypeConverter.cs | 59 + .../api/Support/HealthCheckResult.cs | 106 + .../api/Support/HostPoolType.Completer.cs | 43 + .../api/Support/HostPoolType.TypeConverter.cs | 59 + .../generated/api/Support/HostPoolType.cs | 109 + .../Support/HostPoolUpdateAction.Completer.cs | 51 + .../HostPoolUpdateAction.TypeConverter.cs | 59 + .../api/Support/HostPoolUpdateAction.cs | 109 + .../Support/HostPoolUpdateStatus.Completer.cs | 67 + .../HostPoolUpdateStatus.TypeConverter.cs | 59 + .../api/Support/HostPoolUpdateStatus.cs | 121 + .../api/Support/ImageType.Completer.cs | 43 + .../api/Support/ImageType.TypeConverter.cs | 59 + .../generated/api/Support/ImageType.cs | 103 + .../api/Support/LoadBalancerType.Completer.cs | 43 + .../Support/LoadBalancerType.TypeConverter.cs | 59 + .../generated/api/Support/LoadBalancerType.cs | 100 + .../api/Support/Operation.Completer.cs | 51 + .../api/Support/Operation.TypeConverter.cs | 59 + .../generated/api/Support/Operation.cs | 109 + ...PersonalDesktopAssignmentType.Completer.cs | 39 + ...onalDesktopAssignmentType.TypeConverter.cs | 59 + .../Support/PersonalDesktopAssignmentType.cs | 104 + .../PreferredAppGroupType.Completer.cs | 45 + .../PreferredAppGroupType.TypeConverter.cs | 61 + .../api/Support/PreferredAppGroupType.cs | 102 + ...ntConnectionProvisioningState.Completer.cs | 47 + ...nnectionProvisioningState.TypeConverter.cs | 59 + ...vateEndpointConnectionProvisioningState.cs | 112 + ...dpointServiceConnectionStatus.Completer.cs | 43 + ...ntServiceConnectionStatus.TypeConverter.cs | 59 + .../PrivateEndpointServiceConnectionStatus.cs | 106 + .../Support/PublicNetworkAccess.Completer.cs | 42 + .../PublicNetworkAccess.TypeConverter.cs | 62 + .../api/Support/PublicNetworkAccess.cs | 101 + .../RegistrationTokenOperation.Completer.cs | 43 + ...egistrationTokenOperation.TypeConverter.cs | 59 + .../api/Support/RegistrationTokenOperation.cs | 102 + .../RemoteApplicationType.Completer.cs | 39 + .../RemoteApplicationType.TypeConverter.cs | 59 + .../api/Support/RemoteApplicationType.cs | 98 + .../Support/ResourceIdentityType.Completer.cs | 35 + .../ResourceIdentityType.TypeConverter.cs | 59 + .../api/Support/ResourceIdentityType.cs | 96 + ...essionHostComponentUpdateType.Completer.cs | 39 + ...onHostComponentUpdateType.TypeConverter.cs | 59 + .../Support/SessionHostComponentUpdateType.cs | 108 + ...ionHostLoadBalancingAlgorithm.Completer.cs | 39 + ...ostLoadBalancingAlgorithm.TypeConverter.cs | 59 + .../SessionHostLoadBalancingAlgorithm.cs | 104 + .../SessionHostUpdateStatus.Completer.cs | 39 + .../SessionHostUpdateStatus.TypeConverter.cs | 59 + .../api/Support/SessionHostUpdateStatus.cs | 100 + .../api/Support/SessionState.Completer.cs | 55 + .../api/Support/SessionState.TypeConverter.cs | 59 + .../generated/api/Support/SessionState.cs | 106 + .../api/Support/SkuTier.Completer.cs | 50 + .../api/Support/SkuTier.TypeConverter.cs | 62 + .../generated/api/Support/SkuTier.cs | 105 + .../api/Support/SsoSecretType.Completer.cs | 47 + .../Support/SsoSecretType.TypeConverter.cs | 59 + .../generated/api/Support/SsoSecretType.cs | 102 + .../generated/api/Support/Status.Completer.cs | 79 + .../api/Support/Status.TypeConverter.cs | 59 + .../generated/api/Support/Status.cs | 145 + .../api/Support/StopHostsWhen.Completer.cs | 39 + .../Support/StopHostsWhen.TypeConverter.cs | 59 + .../generated/api/Support/StopHostsWhen.cs | 98 + .../api/Support/UpdateState.Completer.cs | 51 + .../api/Support/UpdateState.TypeConverter.cs | 59 + .../generated/api/Support/UpdateState.cs | 104 + .../VirtualMachineDiskType.Completer.cs | 47 + .../VirtualMachineDiskType.TypeConverter.cs | 59 + .../api/Support/VirtualMachineDiskType.cs | 115 + ...VirtualizationApiUserSession_Disconnect.cs | 432 + ...ionApiUserSession_DisconnectViaIdentity.cs | 394 + ...esktopVirtualizationApiMsixImage_Expand.cs | 422 + ...rtualizationApiMsixImage_ExpandExpanded.cs | 426 + ...alizationApiMsixImage_ExpandViaIdentity.cs | 404 + ...nApiMsixImage_ExpandViaIdentityExpanded.cs | 409 + ...opVirtualizationApiApplicationGroup_Get.cs | 399 + ...ationApiApplicationGroup_GetViaIdentity.cs | 377 + ...pVirtualizationApiApplicationGroup_List.cs | 411 + ...VirtualizationApiApplicationGroup_List1.cs | 397 + ...DesktopVirtualizationApiApplication_Get.cs | 414 + ...ualizationApiApplication_GetViaIdentity.cs | 381 + ...esktopVirtualizationApiApplication_List.cs | 410 + ...etAzDesktopVirtualizationApiDesktop_Get.cs | 413 + ...VirtualizationApiDesktop_GetViaIdentity.cs | 381 + ...tAzDesktopVirtualizationApiDesktop_List.cs | 409 + ...onApiHostPoolRegistrationToken_Retrieve.cs | 402 + ...olRegistrationToken_RetrieveViaIdentity.cs | 381 + ...tAzDesktopVirtualizationApiHostPool_Get.cs | 399 + ...irtualizationApiHostPool_GetViaIdentity.cs | 377 + ...AzDesktopVirtualizationApiHostPool_List.cs | 395 + ...zDesktopVirtualizationApiHostPool_List1.cs | 381 + ...DesktopVirtualizationApiMsixPackage_Get.cs | 415 + ...ualizationApiMsixPackage_GetViaIdentity.cs | 381 + ...esktopVirtualizationApiMsixPackage_List.cs | 409 + ...zDesktopVirtualizationApiOperation_List.cs | 309 + ...izationApiPrivateEndpointConnection_Get.cs | 413 + ...zationApiPrivateEndpointConnection_Get1.cs | 413 + ...rivateEndpointConnection_GetViaIdentity.cs | 382 + ...ivateEndpointConnection_GetViaIdentity1.cs | 382 + ...zationApiPrivateEndpointConnection_List.cs | 409 + ...ationApiPrivateEndpointConnection_List1.cs | 409 + ...rtualizationApiPrivateLinkResource_List.cs | 409 + ...tualizationApiPrivateLinkResource_List1.cs | 409 + ...DesktopVirtualizationApiScalingPlan_Get.cs | 399 + ...ualizationApiScalingPlan_GetViaIdentity.cs | 377 + ...esktopVirtualizationApiScalingPlan_List.cs | 395 + ...sktopVirtualizationApiScalingPlan_List1.cs | 381 + ...sktopVirtualizationApiScalingPlan_List2.cs | 409 + ...DesktopVirtualizationApiSessionHost_Get.cs | 413 + ...ualizationApiSessionHost_GetViaIdentity.cs | 381 + ...esktopVirtualizationApiSessionHost_List.cs | 409 + ...ktopVirtualizationApiStartMenuItem_List.cs | 409 + ...esktopVirtualizationApiUpdateDetail_Get.cs | 398 + ...alizationApiUpdateDetail_GetViaIdentity.cs | 377 + ...sktopVirtualizationApiUpdateDetail_List.cs | 409 + ...tualizationApiUpdateOperationResult_Get.cs | 464 + ...ApiUpdateOperationResult_GetViaIdentity.cs | 443 + ...nApiUpdateValidationOperationResult_Get.cs | 467 + ...alidationOperationResult_GetViaIdentity.cs | 443 + ...DesktopVirtualizationApiUserSession_Get.cs | 427 + ...ualizationApiUserSession_GetViaIdentity.cs | 385 + ...esktopVirtualizationApiUserSession_List.cs | 425 + ...sktopVirtualizationApiUserSession_List1.cs | 423 + ...AzDesktopVirtualizationApiWorkspace_Get.cs | 399 + ...rtualizationApiWorkspace_GetViaIdentity.cs | 377 + ...zDesktopVirtualizationApiWorkspace_List.cs | 395 + ...DesktopVirtualizationApiWorkspace_List1.cs | 381 + ...izationApiControlHostPoolUpdate_Control.cs | 416 + ...piControlHostPoolUpdate_ControlExpanded.cs | 422 + ...ontrolHostPoolUpdate_ControlViaIdentity.cs | 399 + ...stPoolUpdate_ControlViaIdentityExpanded.cs | 404 + ...ationApiApplicationGroup_CreateExpanded.cs | 699 + ...ualizationApiApplication_CreateExpanded.cs | 582 + ...irtualizationApiHostPool_CreateExpanded.cs | 980 ++ ...ualizationApiMsixPackage_CreateExpanded.cs | 582 + ...ualizationApiScalingPlan_CreateExpanded.cs | 711 + ...rtualizationApiWorkspace_CreateExpanded.cs | 680 + ...irtualizationApiApplicationGroup_Delete.cs | 438 + ...onApiApplicationGroup_DeleteViaIdentity.cs | 420 + ...ktopVirtualizationApiApplication_Delete.cs | 453 + ...izationApiApplication_DeleteViaIdentity.cs | 423 + ...DesktopVirtualizationApiHostPool_Delete.cs | 452 + ...ualizationApiHostPool_DeleteViaIdentity.cs | 433 + ...ktopVirtualizationApiMsixPackage_Delete.cs | 454 + ...izationApiMsixPackage_DeleteViaIdentity.cs | 423 + ...tionApiPrivateEndpointConnection_Delete.cs | 453 + ...ionApiPrivateEndpointConnection_Delete1.cs | 453 + ...ateEndpointConnection_DeleteViaIdentity.cs | 424 + ...teEndpointConnection_DeleteViaIdentity1.cs | 424 + ...ktopVirtualizationApiScalingPlan_Delete.cs | 438 + ...izationApiScalingPlan_DeleteViaIdentity.cs | 419 + ...ktopVirtualizationApiSessionHost_Delete.cs | 466 + ...izationApiSessionHost_DeleteViaIdentity.cs | 437 + ...ktopVirtualizationApiUserSession_Delete.cs | 480 + ...izationApiUserSession_DeleteViaIdentity.cs | 441 + ...esktopVirtualizationApiWorkspace_Delete.cs | 438 + ...alizationApiWorkspace_DeleteViaIdentity.cs | 419 + ...irtualizationApiUserSessionMessage_Send.cs | 444 + ...ationApiUserSessionMessage_SendExpanded.cs | 459 + ...onApiUserSessionMessage_SendViaIdentity.cs | 407 + ...rSessionMessage_SendViaIdentityExpanded.cs | 422 + ...ationApiApplicationGroup_UpdateExpanded.cs | 440 + ...licationGroup_UpdateViaIdentityExpanded.cs | 421 + ...ualizationApiApplication_UpdateExpanded.cs | 558 + ...piApplication_UpdateViaIdentityExpanded.cs | 529 + ...VirtualizationApiDesktop_UpdateExpanded.cs | 453 + ...ionApiDesktop_UpdateViaIdentityExpanded.cs | 425 + ...alizationApiHostPoolPost_UpdateExpanded.cs | 531 + ...iHostPoolPost_UpdateViaIdentityExpanded.cs | 511 + ...irtualizationApiHostPool_UpdateExpanded.cs | 717 + ...onApiHostPool_UpdateViaIdentityExpanded.cs | 699 + ...ualizationApiMsixPackage_UpdateExpanded.cs | 454 + ...piMsixPackage_UpdateViaIdentityExpanded.cs | 424 + ...ualizationApiScalingPlan_UpdateExpanded.cs | 497 + ...piScalingPlan_UpdateViaIdentityExpanded.cs | 479 + ...ualizationApiSessionHost_UpdateExpanded.cs | 441 + ...piSessionHost_UpdateViaIdentityExpanded.cs | 413 + ...rtualizationApiWorkspace_UpdateExpanded.cs | 463 + ...nApiWorkspace_UpdateViaIdentityExpanded.cs | 445 + .../Az.Accounts/2.2.3/Accounts.format.ps1xml | 437 + .../2.2.3/Accounts.generated.format.ps1xml | 446 + .../Az.Accounts/2.2.3/Accounts.types.ps1xml | 281 + .../Az.Accounts/2.2.3/Az.Accounts.nuspec | 19 + .../Az.Accounts/2.2.3/Az.Accounts.psd1 | 362 + .../Az.Accounts/2.2.3/Az.Accounts.psm1 | 339 + .../modules/Az.Accounts/2.2.3/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.2.3/Microsoft.ApplicationInsights.dll | Bin 0 -> 179960 bytes .../2.2.3/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 108424 bytes ...l.Authentication.ResourceManager.deps.json | 2383 +++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 78720 bytes ....Azure.PowerShell.Authentication.deps.json | 2348 +++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 122760 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 88968 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 149896 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1418624 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 578440 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 121736 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 412552 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1687432 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 177032 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1158024 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 132488 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3271048 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2486 +++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 430984 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11075 ++++++++++++++ .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 255360 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 19336 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 64392 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.2.3/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 79736 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.2.3/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../2.2.3/NetCoreAssemblies/Azure.Core.dll | Bin 0 -> 151936 bytes .../NetCoreAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54648 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1310664 bytes .../NetCoreAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163464 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18808 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 99192 bytes .../NetCoreAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 14712 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 197 + .../2.2.3/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 160136 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54136 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1377736 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 701336 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 662936 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../2.2.3/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163712 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 1893240 bytes .../System.Reflection.DispatchProxy.dll | Bin 0 -> 24992 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16760 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Cryptography.Cng.dll | Bin 0 -> 23976 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.ServiceModel.Primitives.dll | Bin 0 -> 28552 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 57720 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 32904 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.2.3/StartupScripts/AzError.ps1 | 256 + .../InitializeAssemblyResolver.ps1 | 199 + .../Az.Accounts/2.2.3/[Content_Types].xml | 13 + .../modules/Az.Accounts/2.2.3/_rels/.rels | 5 + .../a81ca9a9339b4bd291ed0d31ee492ddd.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 828 + .../generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 177 + .../BuildTime/Cmdlets/ExportCmdletSurface.cs | 113 + .../BuildTime/Cmdlets/ExportExampleStub.cs | 74 + .../BuildTime/Cmdlets/ExportFormatPs1xml.cs | 99 + .../BuildTime/Cmdlets/ExportHelpMarkdown.cs | 53 + .../BuildTime/Cmdlets/ExportModelSurface.cs | 117 + .../BuildTime/Cmdlets/ExportProxyCmdlet.cs | 159 + .../runtime/BuildTime/Cmdlets/ExportPsd1.cs | 191 + .../BuildTime/Cmdlets/ExportTestStub.cs | 137 + .../BuildTime/Cmdlets/GetCommonParameter.cs | 52 + .../BuildTime/Cmdlets/GetModuleGuid.cs | 31 + .../BuildTime/Cmdlets/GetScriptCmdlet.cs | 53 + .../runtime/BuildTime/CollectionExtensions.cs | 20 + .../runtime/BuildTime/MarkdownRenderer.cs | 121 + .../runtime/BuildTime/Models/PsFormatTypes.cs | 138 + .../BuildTime/Models/PsHelpMarkdownOutputs.cs | 177 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 199 + .../BuildTime/Models/PsMarkdownTypes.cs | 291 + .../BuildTime/Models/PsProxyOutputs.cs | 513 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 499 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 160 + .../generated/runtime/BuildTime/PsHelpers.cs | 104 + .../runtime/BuildTime/StringExtensions.cs | 24 + .../runtime/BuildTime/XmlExtensions.cs | 28 + .../generated/runtime/CmdInfoHandler.cs | 40 + .../Conversions/ConversionException.cs | 17 + .../runtime/Conversions/IJsonConverter.cs | 13 + .../Conversions/Instances/BinaryConverter.cs | 24 + .../Conversions/Instances/BooleanConverter.cs | 13 + .../Instances/DateTimeConverter.cs | 18 + .../Instances/DateTimeOffsetConverter.cs | 15 + .../Conversions/Instances/DecimalConverter.cs | 16 + .../Conversions/Instances/DoubleConverter.cs | 13 + .../Conversions/Instances/EnumConverter.cs | 30 + .../Conversions/Instances/GuidConverter.cs | 15 + .../Instances/HashSet'1Converter.cs | 27 + .../Conversions/Instances/Int16Converter.cs | 13 + .../Conversions/Instances/Int32Converter.cs | 13 + .../Conversions/Instances/Int64Converter.cs | 13 + .../Instances/JsonArrayConverter.cs | 13 + .../Instances/JsonObjectConverter.cs | 13 + .../Conversions/Instances/SingleConverter.cs | 13 + .../Conversions/Instances/StringConverter.cs | 13 + .../Instances/TimeSpanConverter.cs | 15 + .../Conversions/Instances/UInt16Converter.cs | 13 + .../Conversions/Instances/UInt32Converter.cs | 13 + .../Conversions/Instances/UInt64Converter.cs | 13 + .../Conversions/Instances/UriConverter.cs | 15 + .../runtime/Conversions/JsonConverter.cs | 21 + .../Conversions/JsonConverterAttribute.cs | 18 + .../Conversions/JsonConverterFactory.cs | 91 + .../Conversions/StringLikeConverter.cs | 45 + .../Customizations/IJsonSerializable.cs | 249 + .../runtime/Customizations/JsonArray.cs | 13 + .../runtime/Customizations/JsonBoolean.cs | 16 + .../runtime/Customizations/JsonNode.cs | 21 + .../runtime/Customizations/JsonNumber.cs | 78 + .../runtime/Customizations/JsonObject.cs | 183 + .../runtime/Customizations/JsonString.cs | 34 + .../runtime/Customizations/XNodeArray.cs | 44 + .../generated/runtime/Debugging.cs | 28 + .../generated/runtime/DictionaryExtensions.cs | 36 + .../generated/runtime/EventData.cs | 78 + .../generated/runtime/EventDataExtensions.cs | 94 + .../generated/runtime/EventListener.cs | 247 + .../generated/runtime/Events.cs | 27 + .../generated/runtime/EventsExtensions.cs | 27 + .../generated/runtime/Extensions.cs | 111 + .../Extensions/StringBuilderExtensions.cs | 23 + .../Helpers/Extensions/TypeExtensions.cs | 61 + .../generated/runtime/Helpers/Seperator.cs | 11 + .../generated/runtime/Helpers/TypeDetails.cs | 116 + .../generated/runtime/Helpers/XHelper.cs | 75 + .../generated/runtime/HttpPipeline.cs | 88 + .../generated/runtime/HttpPipelineMocking.ps1 | 110 + .../generated/runtime/IAssociativeArray.cs | 21 + .../generated/runtime/IHeaderSerializable.cs | 14 + .../generated/runtime/ISendAsync.cs | 296 + .../generated/runtime/InfoAttribute.cs | 34 + .../generated/runtime/Iso/IsoDate.cs | 214 + .../generated/runtime/JsonType.cs | 18 + .../generated/runtime/Method.cs | 19 + .../generated/runtime/Models/JsonMember.cs | 83 + .../generated/runtime/Models/JsonModel.cs | 89 + .../runtime/Models/JsonModelCache.cs | 19 + .../runtime/Nodes/Collections/JsonArray.cs | 65 + .../Nodes/Collections/XImmutableArray.cs | 62 + .../runtime/Nodes/Collections/XList.cs | 64 + .../runtime/Nodes/Collections/XNodeArray.cs | 68 + .../runtime/Nodes/Collections/XSet.cs | 60 + .../generated/runtime/Nodes/JsonBoolean.cs | 42 + .../generated/runtime/Nodes/JsonDate.cs | 173 + .../generated/runtime/Nodes/JsonNode.cs | 250 + .../generated/runtime/Nodes/JsonNumber.cs | 109 + .../generated/runtime/Nodes/JsonObject.cs | 172 + .../generated/runtime/Nodes/JsonString.cs | 42 + .../generated/runtime/Nodes/XBinary.cs | 40 + .../generated/runtime/Nodes/XNull.cs | 15 + .../Parser/Exceptions/ParseException.cs | 24 + .../generated/runtime/Parser/JsonParser.cs | 180 + .../generated/runtime/Parser/JsonToken.cs | 66 + .../generated/runtime/Parser/JsonTokenizer.cs | 177 + .../generated/runtime/Parser/Location.cs | 43 + .../runtime/Parser/Readers/SourceReader.cs | 130 + .../generated/runtime/Parser/TokenReader.cs | 39 + .../generated/runtime/PipelineMocking.cs | 262 + .../generated/runtime/Response.cs | 27 + .../runtime/Serialization/JsonSerializer.cs | 350 + .../Serialization/PropertyTransformation.cs | 21 + .../Serialization/SerializationOptions.cs | 65 + .../generated/runtime/SerializationMode.cs | 16 + .../runtime/TypeConverterExtensions.cs | 190 + .../runtime/UndeclaredResponseException.cs | 109 + .../generated/runtime/Writers/JsonWriter.cs | 223 + .../generated/runtime/delegates.cs | 23 + swaggerci/desktopvirtualization/how-to.md | 58 + .../Az.DesktopVirtualizationApi.internal.psm1 | 38 + ...et-AzDesktopVirtualizationApiOperation.ps1 | 121 + .../internal/ProxyCmdletDefinitions.ps1 | 121 + .../desktopvirtualization/internal/readme.md | 14 + swaggerci/desktopvirtualization/license.txt | 227 + .../desktopvirtualization/pack-module.ps1 | 16 + swaggerci/desktopvirtualization/readme.md | 38 + .../desktopvirtualization/resources/readme.md | 11 + .../desktopvirtualization/run-module.ps1 | 61 + .../desktopvirtualization/test-module.ps1 | 70 + ...ktopVirtualizationApiUserSession.Tests.ps1 | 22 + ...esktopVirtualizationApiMsixImage.Tests.ps1 | 30 + ...ktopVirtualizationApiApplication.Tests.ps1 | 26 + ...irtualizationApiApplicationGroup.Tests.ps1 | 30 + ...zDesktopVirtualizationApiDesktop.Tests.ps1 | 26 + ...DesktopVirtualizationApiHostPool.Tests.ps1 | 30 + ...tionApiHostPoolRegistrationToken.Tests.ps1 | 22 + ...ktopVirtualizationApiMsixPackage.Tests.ps1 | 26 + ...tionApiPrivateEndpointConnection.Tests.ps1 | 38 + ...ualizationApiPrivateLinkResource.Tests.ps1 | 22 + ...ktopVirtualizationApiScalingPlan.Tests.ps1 | 34 + ...ktopVirtualizationApiSessionHost.Tests.ps1 | 26 + ...opVirtualizationApiStartMenuItem.Tests.ps1 | 18 + ...topVirtualizationApiUpdateDetail.Tests.ps1 | 26 + ...lizationApiUpdateOperationResult.Tests.ps1 | 22 + ...iUpdateValidationOperationResult.Tests.ps1 | 22 + ...ktopVirtualizationApiUserSession.Tests.ps1 | 30 + ...esktopVirtualizationApiWorkspace.Tests.ps1 | 30 + ...lizationApiControlHostPoolUpdate.Tests.ps1 | 30 + ...ktopVirtualizationApiApplication.Tests.ps1 | 18 + ...irtualizationApiApplicationGroup.Tests.ps1 | 18 + ...DesktopVirtualizationApiHostPool.Tests.ps1 | 18 + ...ktopVirtualizationApiMsixPackage.Tests.ps1 | 18 + ...ktopVirtualizationApiScalingPlan.Tests.ps1 | 18 + ...esktopVirtualizationApiWorkspace.Tests.ps1 | 18 + ...ktopVirtualizationApiApplication.Tests.ps1 | 22 + ...irtualizationApiApplicationGroup.Tests.ps1 | 22 + ...DesktopVirtualizationApiHostPool.Tests.ps1 | 22 + ...ktopVirtualizationApiMsixPackage.Tests.ps1 | 22 + ...tionApiPrivateEndpointConnection.Tests.ps1 | 30 + ...ktopVirtualizationApiScalingPlan.Tests.ps1 | 22 + ...ktopVirtualizationApiSessionHost.Tests.ps1 | 22 + ...ktopVirtualizationApiUserSession.Tests.ps1 | 22 + ...esktopVirtualizationApiWorkspace.Tests.ps1 | 22 + ...tualizationApiUserSessionMessage.Tests.ps1 | 30 + ...ktopVirtualizationApiApplication.Tests.ps1 | 22 + ...irtualizationApiApplicationGroup.Tests.ps1 | 22 + ...zDesktopVirtualizationApiDesktop.Tests.ps1 | 22 + ...DesktopVirtualizationApiHostPool.Tests.ps1 | 22 + ...topVirtualizationApiHostPoolPost.Tests.ps1 | 22 + ...ktopVirtualizationApiMsixPackage.Tests.ps1 | 22 + ...ktopVirtualizationApiScalingPlan.Tests.ps1 | 22 + ...ktopVirtualizationApiSessionHost.Tests.ps1 | 22 + ...esktopVirtualizationApiWorkspace.Tests.ps1 | 22 + .../desktopvirtualization/test/loadEnv.ps1 | 28 + .../desktopvirtualization/test/readme.md | 17 + .../desktopvirtualization/test/utils.ps1 | 24 + .../utils/Unprotect-SecureString.ps1 | 16 + 1084 files changed, 204427 insertions(+), 186 deletions(-) create mode 100644 swaggerci/desktopvirtualization/.gitattributes create mode 100644 swaggerci/desktopvirtualization/.gitignore create mode 100644 swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.csproj create mode 100644 swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.format.ps1xml create mode 100644 swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.nuspec create mode 100644 swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psd1 create mode 100644 swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psm1 create mode 100644 swaggerci/desktopvirtualization/MSSharedLibKey.snk create mode 100644 swaggerci/desktopvirtualization/build-module.ps1 create mode 100644 swaggerci/desktopvirtualization/check-dependencies.ps1 create mode 100644 swaggerci/desktopvirtualization/create-model-cmdlets.ps1 create mode 100644 swaggerci/desktopvirtualization/custom/Az.DesktopVirtualizationApi.custom.psm1 create mode 100644 swaggerci/desktopvirtualization/custom/readme.md create mode 100644 swaggerci/desktopvirtualization/docs/Az.DesktopVirtualizationApi.md create mode 100644 swaggerci/desktopvirtualization/docs/Disconnect-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/docs/Expand-AzDesktopVirtualizationApiMsixImage.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiDesktop.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateLinkResource.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiStartMenuItem.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateDetail.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateOperationResult.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/docs/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/docs/Send-AzDesktopVirtualizationApiUserSessionMessage.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiDesktop.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPoolPost.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/docs/readme.md create mode 100644 swaggerci/desktopvirtualization/examples/Disconnect-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/examples/Expand-AzDesktopVirtualizationApiMsixImage.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiDesktop.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateLinkResource.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiStartMenuItem.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateDetail.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateOperationResult.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/examples/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiUserSession.md create mode 100644 swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/examples/Send-AzDesktopVirtualizationApiUserSessionMessage.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplication.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplicationGroup.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiDesktop.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPool.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPoolPost.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiMsixPackage.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiScalingPlan.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiSessionHost.md create mode 100644 swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiWorkspace.md create mode 100644 swaggerci/desktopvirtualization/export-surface.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Disconnect-AzDesktopVirtualizationApiUserSession.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Expand-AzDesktopVirtualizationApiMsixImage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplication.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplicationGroup.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiDesktop.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPool.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiMsixPackage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateLinkResource.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiScalingPlan.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiSessionHost.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiStartMenuItem.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateDetail.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateOperationResult.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUserSession.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiWorkspace.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplication.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplicationGroup.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiHostPool.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiMsixPackage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiScalingPlan.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiWorkspace.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplication.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplicationGroup.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiHostPool.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiMsixPackage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiScalingPlan.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiSessionHost.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiUserSession.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiWorkspace.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Send-AzDesktopVirtualizationApiUserSessionMessage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplication.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplicationGroup.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiDesktop.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPool.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPoolPost.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiMsixPackage.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiScalingPlan.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiSessionHost.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiWorkspace.ps1 create mode 100644 swaggerci/desktopvirtualization/exports/readme.md create mode 100644 swaggerci/desktopvirtualization/generate-help.ps1 create mode 100644 swaggerci/desktopvirtualization/generated/Module.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/DesktopVirtualizationApiClient.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.dictionary.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.PowerShell.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.json.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ImageType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ImageType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ImageType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Operation.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Operation.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Operation.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionState.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionState.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SessionState.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SkuTier.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SkuTier.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SkuTier.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Status.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Status.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/Status.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/UpdateState.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/UpdateState.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/UpdateState.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.Completer.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.TypeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_Disconnect.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_Expand.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiOperation_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List2.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiStartMenuItem_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_Get.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_GetViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplication_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiHostPool_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiWorkspace_CreateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_Delete.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_Send.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Core.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Identity.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Json.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/StartupScripts/AzError.ps1 create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/[Content_Types].xml create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/_rels/.rels create mode 100644 swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/package/services/metadata/core-properties/a81ca9a9339b4bd291ed0d31ee492ddd.psmdcp create mode 100644 swaggerci/desktopvirtualization/generated/runtime/AsyncCommandRuntime.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/AsyncJob.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/AsyncOperationResponse.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/CollectionExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/MarkdownRenderer.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsFormatTypes.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsHelpTypes.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsProxyOutputs.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/Models/PsProxyTypes.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/PsAttributes.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/PsExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/PsHelpers.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/StringExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/BuildTime/XmlExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/CmdInfoHandler.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/ConversionException.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/IJsonConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/BinaryConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/BooleanConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/DateTimeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/DecimalConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/DoubleConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/EnumConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/GuidConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/HashSet'1Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/Int16Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/Int32Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/Int64Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/JsonArrayConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/JsonObjectConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/SingleConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/StringConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/TimeSpanConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/UInt16Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/UInt32Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/UInt64Converter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/Instances/UriConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/JsonConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/JsonConverterAttribute.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/JsonConverterFactory.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Conversions/StringLikeConverter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/IJsonSerializable.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonBoolean.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonNode.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonNumber.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonObject.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/JsonString.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Customizations/XNodeArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Debugging.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/DictionaryExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/EventData.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/EventDataExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/EventListener.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Events.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/EventsExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Extensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Helpers/Extensions/TypeExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Helpers/Seperator.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Helpers/TypeDetails.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Helpers/XHelper.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/HttpPipeline.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/HttpPipelineMocking.ps1 create mode 100644 swaggerci/desktopvirtualization/generated/runtime/IAssociativeArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/IHeaderSerializable.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/ISendAsync.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/InfoAttribute.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Iso/IsoDate.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/JsonType.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Method.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Models/JsonMember.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Models/JsonModel.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Models/JsonModelCache.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/Collections/JsonArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/Collections/XImmutableArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/Collections/XList.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/Collections/XNodeArray.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/Collections/XSet.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonBoolean.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonDate.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonNode.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonNumber.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonObject.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/JsonString.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/XBinary.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Nodes/XNull.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/Exceptions/ParseException.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/JsonParser.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/JsonToken.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/JsonTokenizer.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/Location.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/Readers/SourceReader.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Parser/TokenReader.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/PipelineMocking.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Response.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Serialization/JsonSerializer.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Serialization/PropertyTransformation.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Serialization/SerializationOptions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/SerializationMode.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/TypeConverterExtensions.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/UndeclaredResponseException.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/Writers/JsonWriter.cs create mode 100644 swaggerci/desktopvirtualization/generated/runtime/delegates.cs create mode 100644 swaggerci/desktopvirtualization/how-to.md create mode 100644 swaggerci/desktopvirtualization/internal/Az.DesktopVirtualizationApi.internal.psm1 create mode 100644 swaggerci/desktopvirtualization/internal/Get-AzDesktopVirtualizationApiOperation.ps1 create mode 100644 swaggerci/desktopvirtualization/internal/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/desktopvirtualization/internal/readme.md create mode 100644 swaggerci/desktopvirtualization/license.txt create mode 100644 swaggerci/desktopvirtualization/pack-module.ps1 create mode 100644 swaggerci/desktopvirtualization/readme.md create mode 100644 swaggerci/desktopvirtualization/resources/readme.md create mode 100644 swaggerci/desktopvirtualization/run-module.ps1 create mode 100644 swaggerci/desktopvirtualization/test-module.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Disconnect-AzDesktopVirtualizationApiUserSession.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Expand-AzDesktopVirtualizationApiMsixImage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiApplication.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiApplicationGroup.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiDesktop.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiHostPool.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiMsixPackage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiPrivateLinkResource.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiScalingPlan.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiSessionHost.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiStartMenuItem.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiUpdateDetail.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiUpdateOperationResult.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiUserSession.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Get-AzDesktopVirtualizationApiWorkspace.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiApplication.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiApplicationGroup.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiHostPool.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiMsixPackage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiScalingPlan.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/New-AzDesktopVirtualizationApiWorkspace.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiApplication.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiApplicationGroup.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiHostPool.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiMsixPackage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiScalingPlan.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiSessionHost.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiUserSession.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Remove-AzDesktopVirtualizationApiWorkspace.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Send-AzDesktopVirtualizationApiUserSessionMessage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiApplication.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiApplicationGroup.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiDesktop.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiHostPool.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiHostPoolPost.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiMsixPackage.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiScalingPlan.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiSessionHost.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/Update-AzDesktopVirtualizationApiWorkspace.Tests.ps1 create mode 100644 swaggerci/desktopvirtualization/test/loadEnv.ps1 create mode 100644 swaggerci/desktopvirtualization/test/readme.md create mode 100644 swaggerci/desktopvirtualization/test/utils.ps1 create mode 100644 swaggerci/desktopvirtualization/utils/Unprotect-SecureString.ps1 diff --git a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 index 620320ee1c46..f99898c012b5 100644 --- a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 +++ b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 @@ -1,96 +1,96 @@ -<# -READ ME: -This script finds Windows and Linux Virtual Machines encrypted with single pass ADE in all resource groups present in a subscription. -INPUT: -Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx -OUTPUT: -A .csv file with file name "_AdeVMInfo.csv" is created in the same working directory. -Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMs. -#> - -$ErrorActionPreference = "Continue" -$SubscriptionId = Read-Host("Enter Subscription ID") -$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId - -if($setSubscriptionContext -ne $null) -{ - $getAllVMInSubscription = Get-AzVM - $outputContent = @() - - foreach ($vmobject in $getAllVMInSubscription) - { - $vm_OS = "" - if ($vmobject.OSProfile.WindowsConfiguration -eq $null) - { - $vm_OS = "Linux" - } - else - { - $vm_OS = "Windows" - } - - $vmInstanceView = Get-AzVM -ResourceGroupName $vmobject.ResourceGroupName -Name $vmobject.Name -Status - - $isVMADEEncrypted = $false - $isStoppedVM = $false - $adeVersion = "" - - #Find ADE extension version if ADE extension is installed - $vmExtensions = $vmInstanceView.Extensions - foreach ($extension in $vmExtensions) - { - if ($extension.Name -like "azurediskencryption*") - { - $adeVersion = $extension.TypeHandlerVersion - $isVMADEEncrypted = $true - break; - } - } - - #Look for encryption settings on disks. This applies to VMs that are in deallocated state - #Extension version information is unavailable for stopped VMs - if ($isVMADEEncrypted -eq $false) - { - $disks = $vmInstanceView.Disks - foreach ($diskObject in $disks) - { - if ($diskObject.EncryptionSettings -ne $null) - { - $isStoppedEncryptedVM = $true - break; - } - } - } - - if ($isVMADEEncrypted) - { - #Prepare output content for single pass VMs - if ((($vm_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vm_OS -eq "Linux") -and ($adeVersion -like "1.*"))) - { - $results = @{ - VMName = $vmobject.Name - ResourceGroupName = $vmobject.ResourceGroupName - VM_OS = $vm_OS - ADE_Version = $adeVersion - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VM " $vmobject.Name - } - } - elseif ($isStoppedEncryptedVM) - { - $results = @{ - VMName = $vmobject.Name - ResourceGroupName = $vmobject.ResourceGroupName - VM_OS = $vm_OS - ADE_Version = "Not Available" - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VM. ADE version = Not available " $vmobject.Name - } - } - - #Write to output file - $filePath = ".\" + $SubscriptionId + "_AdeVMInfo.csv" - $outputContent | export-csv -Path $filePath -NoTypeInformation +<# +READ ME: +This script finds Windows and Linux Virtual Machines encrypted with single pass ADE in all resource groups present in a subscription. +INPUT: +Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx +OUTPUT: +A .csv file with file name "_AdeVMInfo.csv" is created in the same working directory. +Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMs. +#> + +$ErrorActionPreference = "Continue" +$SubscriptionId = Read-Host("Enter Subscription ID") +$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId + +if($setSubscriptionContext -ne $null) +{ + $getAllVMInSubscription = Get-AzVM + $outputContent = @() + + foreach ($vmobject in $getAllVMInSubscription) + { + $vm_OS = "" + if ($vmobject.OSProfile.WindowsConfiguration -eq $null) + { + $vm_OS = "Linux" + } + else + { + $vm_OS = "Windows" + } + + $vmInstanceView = Get-AzVM -ResourceGroupName $vmobject.ResourceGroupName -Name $vmobject.Name -Status + + $isVMADEEncrypted = $false + $isStoppedVM = $false + $adeVersion = "" + + #Find ADE extension version if ADE extension is installed + $vmExtensions = $vmInstanceView.Extensions + foreach ($extension in $vmExtensions) + { + if ($extension.Name -like "azurediskencryption*") + { + $adeVersion = $extension.TypeHandlerVersion + $isVMADEEncrypted = $true + break; + } + } + + #Look for encryption settings on disks. This applies to VMs that are in deallocated state + #Extension version information is unavailable for stopped VMs + if ($isVMADEEncrypted -eq $false) + { + $disks = $vmInstanceView.Disks + foreach ($diskObject in $disks) + { + if ($diskObject.EncryptionSettings -ne $null) + { + $isStoppedEncryptedVM = $true + break; + } + } + } + + if ($isVMADEEncrypted) + { + #Prepare output content for single pass VMs + if ((($vm_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vm_OS -eq "Linux") -and ($adeVersion -like "1.*"))) + { + $results = @{ + VMName = $vmobject.Name + ResourceGroupName = $vmobject.ResourceGroupName + VM_OS = $vm_OS + ADE_Version = $adeVersion + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VM " $vmobject.Name + } + } + elseif ($isStoppedEncryptedVM) + { + $results = @{ + VMName = $vmobject.Name + ResourceGroupName = $vmobject.ResourceGroupName + VM_OS = $vm_OS + ADE_Version = "Not Available" + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VM. ADE version = Not available " $vmobject.Name + } + } + + #Write to output file + $filePath = ".\" + $SubscriptionId + "_AdeVMInfo.csv" + $outputContent | export-csv -Path $filePath -NoTypeInformation } \ No newline at end of file diff --git a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 index a3526e45125f..6618f1af780d 100644 --- a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 +++ b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 @@ -1,92 +1,92 @@ -<# -READ ME: -This script finds Windows and Linux Virtual Machine Scale Sets encrypted with single pass ADE in all resource groups present in a subscription. -INPUT: -Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx -OUTPUT: -A .csv file with file name "__AdeVMSSInfo.csv" is created in the same working directory. -Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMSS. -#> - -$ErrorActionPreference = "Continue" -$SubscriptionId = Read-Host("Enter Subscription ID") -$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId - -if($setSubscriptionContext -ne $null) -{ - $getAllVMSSInSubscription = Get-AzVmss - $outputContent = @() - - foreach ($vmssobject in $getAllVMSSInSubscription) - { - $vmssModel = Get-AzVmss -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name - if ($vmssModel.VirtualMachineProfile.OsProfile.WindowsConfiguration -eq $null) - { - $vmss_OS = "Linux" - } - else - { - $vmss_OS = "Windows" - } - - $isVMSSADEEncrypted = $false - $adeVersion = "" - - #find if VMSS has ADE extension installed - $vmssExtensions = $vmssObject.VirtualMachineProfile.ExtensionProfile.Extensions - foreach ($extension in $vmssExtensions) - { - if ($extension.Type -like "azurediskencryption*") - { - $isVMSSADEEncrypted = $true - break; - } - } - - #find ADE extension version if VMSS has ADE installed. - if ($isVMSSADEEncrypted) - { - $vmssInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView - $vmssInstanceId = $vmssInstanceView[0].InstanceId - $vmssVMInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView -InstanceId $vmssInstanceId - - $vmssExtensions = $vmssVMInstanceView.Extensions - foreach ($extension in $vmssExtensions) - { - if ($extension.Type -like "Microsoft.Azure.Security.Azurediskencryption*") - { - $adeVersion = $extension.TypeHandlerVersion - break; - } - } - - #Prepare output content for single pass VMSS - if ((($vmss_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vmss_OS -eq "Linux") -and ($adeVersion -like "1.*"))) - { - $results = @{ - VMSSName = $vmssobject.Name - ResourceGroupName = $vmssobject.ResourceGroupName - VMSS_OS = $vmss_OS - ADE_Version = $adeVersion - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VMSS" $vmssobject.Name - } - elseif ([string]::IsNullOrEmpty($adeVersion)) - { - $results = @{ - VMSSName = $vmssobject.Name - ResourceGroupName = $vmssobject.ResourceGroupName - VMSS_OS = $vmss_OS - ADE_Version = "Not Available" - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VMSS. ADE version = Not available" $vmssobject.Name - } - } - } - - #Write to output file - $filePath = ".\" + $SubscriptionId + "_AdeVMSSInfo.csv" - $outputContent | export-csv -Path $filePath -NoTypeInformation +<# +READ ME: +This script finds Windows and Linux Virtual Machine Scale Sets encrypted with single pass ADE in all resource groups present in a subscription. +INPUT: +Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx +OUTPUT: +A .csv file with file name "__AdeVMSSInfo.csv" is created in the same working directory. +Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMSS. +#> + +$ErrorActionPreference = "Continue" +$SubscriptionId = Read-Host("Enter Subscription ID") +$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId + +if($setSubscriptionContext -ne $null) +{ + $getAllVMSSInSubscription = Get-AzVmss + $outputContent = @() + + foreach ($vmssobject in $getAllVMSSInSubscription) + { + $vmssModel = Get-AzVmss -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name + if ($vmssModel.VirtualMachineProfile.OsProfile.WindowsConfiguration -eq $null) + { + $vmss_OS = "Linux" + } + else + { + $vmss_OS = "Windows" + } + + $isVMSSADEEncrypted = $false + $adeVersion = "" + + #find if VMSS has ADE extension installed + $vmssExtensions = $vmssObject.VirtualMachineProfile.ExtensionProfile.Extensions + foreach ($extension in $vmssExtensions) + { + if ($extension.Type -like "azurediskencryption*") + { + $isVMSSADEEncrypted = $true + break; + } + } + + #find ADE extension version if VMSS has ADE installed. + if ($isVMSSADEEncrypted) + { + $vmssInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView + $vmssInstanceId = $vmssInstanceView[0].InstanceId + $vmssVMInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView -InstanceId $vmssInstanceId + + $vmssExtensions = $vmssVMInstanceView.Extensions + foreach ($extension in $vmssExtensions) + { + if ($extension.Type -like "Microsoft.Azure.Security.Azurediskencryption*") + { + $adeVersion = $extension.TypeHandlerVersion + break; + } + } + + #Prepare output content for single pass VMSS + if ((($vmss_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vmss_OS -eq "Linux") -and ($adeVersion -like "1.*"))) + { + $results = @{ + VMSSName = $vmssobject.Name + ResourceGroupName = $vmssobject.ResourceGroupName + VMSS_OS = $vmss_OS + ADE_Version = $adeVersion + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VMSS" $vmssobject.Name + } + elseif ([string]::IsNullOrEmpty($adeVersion)) + { + $results = @{ + VMSSName = $vmssobject.Name + ResourceGroupName = $vmssobject.ResourceGroupName + VMSS_OS = $vmss_OS + ADE_Version = "Not Available" + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VMSS. ADE version = Not available" $vmssobject.Name + } + } + } + + #Write to output file + $filePath = ".\" + $SubscriptionId + "_AdeVMSSInfo.csv" + $outputContent | export-csv -Path $filePath -NoTypeInformation } \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/.gitattributes b/swaggerci/desktopvirtualization/.gitattributes new file mode 100644 index 000000000000..2125666142eb --- /dev/null +++ b/swaggerci/desktopvirtualization/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/.gitignore b/swaggerci/desktopvirtualization/.gitignore new file mode 100644 index 000000000000..7998f37e1e47 --- /dev/null +++ b/swaggerci/desktopvirtualization/.gitignore @@ -0,0 +1,5 @@ +bin +obj +.vs +tools +test/*-TestResults.xml \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.csproj b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.csproj new file mode 100644 index 000000000000..d1e75cf29445 --- /dev/null +++ b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.csproj @@ -0,0 +1,43 @@ + + + + 0.1.0 + 7.1 + netstandard2.0 + Library + Az.DesktopVirtualizationApi.private + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi + true + false + ./bin + $(OutputPath) + Az.DesktopVirtualizationApi.nuspec + true + + 1998 + true + + + + + false + TRACE;DEBUG;NETSTANDARD + + + + true + true + MSSharedLibKey.snk + TRACE;RELEASE;NETSTANDARD;SIGN + + + + + + + + + $(DefaultItemExcludes);resources/** + + + \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.format.ps1xml b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.format.ps1xml new file mode 100644 index 000000000000..dcdd5b12424c --- /dev/null +++ b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.format.ps1xml @@ -0,0 +1,4415 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.DesktopVirtualizationApiIdentity + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.DesktopVirtualizationApiIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationGroupName + + + ApplicationName + + + DesktopName + + + HostPoolName + + + MsixPackageFullName + + + PrivateEndpointConnectionName + + + ResourceGroupName + + + ScalingPlanName + + + SessionHostName + + + SubscriptionId + + + UserSessionId + + + WorkspaceName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Etag + + + IdentityPrincipalId + + + IdentityTenantId + + + IdentityType + + + Kind + + + Location + + + ManagedBy + + + Name + + + PlanName + + + PlanProduct + + + PlanPromotionCode + + + PlanPublisher + + + PlanVersion + + + SkuCapacity + + + SkuFamily + + + SkuName + + + SkuSize + + + SkuTier + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatch + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatch + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchProperties + + + + + + + + + + + + + + + Description + + + FriendlyName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationGroupType + + + CloudPcResource + + + Description + + + FriendlyName + + + HostPoolArmPath + + + ObjectId + + + WorkspaceArmPath + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationType + + + CommandLineArgument + + + CommandLineSetting + + + Description + + + FilePath + + + FriendlyName + + + IconIndex + + + IconPath + + + MsixPackageApplicationId + + + MsixPackageFamilyName + + + ShowInPortal + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationType + + + CommandLineArgument + + + CommandLineSetting + + + Description + + + FilePath + + + FriendlyName + + + IconContent + + + IconHash + + + IconIndex + + + IconPath + + + MsixPackageApplicationId + + + MsixPackageFamilyName + + + ObjectId + + + ShowInPortal + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorProperties + + + + + + + + + + + + + + + Code + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Desktop + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Desktop + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchProperties + + + + + + + + + + + + + + + Description + + + FriendlyName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopProperties + + + + + + + + + + + + + + + + + + + + + + + + Description + + + FriendlyName + + + IconContent + + + IconHash + + + ObjectId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoProperties + + + + + + + + + + + + + + + + + + JoinType + + + MdmProviderGuid + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImage + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImage + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DisplayName + + + ImagePath + + + IsActive + + + IsRegularRegistration + + + LastUpdated + + + PackageAlias + + + PackageFamilyName + + + PackageFullName + + + PackageName + + + PackageRelativePath + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Etag + + + IdentityPrincipalId + + + IdentityTenantId + + + IdentityType + + + Kind + + + Location + + + ManagedBy + + + Name + + + PlanName + + + PlanProduct + + + PlanPromotionCode + + + PlanPublisher + + + PlanVersion + + + SkuCapacity + + + SkuFamily + + + SkuName + + + SkuSize + + + SkuTier + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolControlParameter + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolControlParameter + + + + + + + + + + + + Action + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatch + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatch + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CustomRdpProperty + + + Description + + + FriendlyName + + + LoadBalancerType + + + MaxSessionLimit + + + PersonalDesktopAssignmentType + + + PreferredAppGroupType + + + PublicNetworkAccess + + + Ring + + + SsoClientId + + + SsoClientSecretKeyVaultPath + + + SsoSecretType + + + SsoadfsAuthority + + + StartVMOnConnect + + + VMTemplate + + + ValidationEnvironment + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationGroupReference + + + CloudPcResource + + + CustomRdpProperty + + + Description + + + FriendlyName + + + HostPoolType + + + LoadBalancerType + + + MaxSessionLimit + + + ObjectId + + + PersonalDesktopAssignmentType + + + PreferredAppGroupType + + + PublicNetworkAccess + + + Ring + + + SessionHostConfigurationLastUpdateTime + + + SsoClientId + + + SsoClientSecretKeyVaultPath + + + SsoSecretType + + + SsoadfsAuthority + + + StartVMOnConnect + + + VMTemplate + + + ValidationEnvironment + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdate + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdate + + + + + + + + + + + + ValidateOnly + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties + + + + + + + + + + + + + + + + + + + + + LogOffDelaySecond + + + LogOffMessage + + + MaxVmsRemovedDuringUpdate + + + SaveOriginalDisk + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFault + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFault + + + + + + + + + + + + + + + + + + + + + FaultCode + + + FaultContext + + + FaultText + + + FaultType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties + + + + + + + + + + + + + + + + + + + + + CorrelationId + + + HostPoolResourceId + + + UpdateStatus + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgress + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgress + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ProgressPercentage + + + SessionHostsMigrated + + + SessionHostsMigrating + + + SessionHostsRollbackFailed + + + SessionHostsToMigrate + + + TimeCreated + + + TimeEnded + + + TimeFailed + + + TimeStarted + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoProperties + + + + + + + + + + + + + + + + + + CustomId + + + StorageBlobUri + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties + + + + + + + + + + + + + + + + + + PasswordKeyVaultResourceId + + + PasswordSecretName + + + UserName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecification + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecification + + + + + + + + + + + + + + + + + + BlobDuration + + + DisplayName + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsProperties + + + + + + + + + + + + + + + + + + BeforeKickOff + + + Duration + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowProperties + + + + + + + + + + + + + + + DayOfWeek + + + Hour + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoProperties + + + + + + + + + + + + + + + + + + + + + ExactVersion + + + Offer + + + Publisher + + + Sku + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties + + + + + + + + + + + + + + + MigrationPath + + + Operation + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixImageUri + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixImageUri + + + + + + + + + + + + Uri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplications + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplications + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AppId + + + AppUserModelId + + + Description + + + FriendlyName + + + IconImageName + + + RawIcon + + + RawPng + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependencies + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependencies + + + + + + + + + + + + + + + + + + DependencyName + + + MinVersion + + + Publisher + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatch + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatch + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchProperties + + + + + + + + + + + + + + + + + + DisplayName + + + IsActive + + + IsRegularRegistration + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DisplayName + + + ImagePath + + + IsActive + + + IsRegularRegistration + + + LastUpdated + + + PackageFamilyName + + + PackageName + + + PackageRelativePath + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionListResultWithSystemData + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionListResultWithSystemData + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name + + + PrivateEndpointId + + + PrivateLinkServiceConnectionStateActionsRequired + + + PrivateLinkServiceConnectionStateDescription + + + PrivateLinkServiceConnectionStateStatus + + + ProvisioningState + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResource + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceListResult + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceProperties + + + + + + + + + + + + + + + + + + GroupId + + + RequiredMember + + + RequiredZoneName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo + + + + + + + + + + + + + + + + + + ExpirationTime + + + RegistrationTokenOperation + + + Token + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatch + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatch + + + + + + + + + + + + + + + ExpirationTime + + + RegistrationTokenOperation + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperation + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperation + + + + + + + + + + + + + + + IsDataAction + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplay + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplay + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReference + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReference + + + + + + + + + + + + + + + HostPoolArmPath + + + ScalingPlanEnabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Etag + + + IdentityPrincipalId + + + IdentityTenantId + + + IdentityType + + + Kind + + + Location + + + ManagedBy + + + Name + + + PlanName + + + PlanProduct + + + PlanPromotionCode + + + PlanPublisher + + + PlanVersion + + + SkuCapacity + + + SkuFamily + + + SkuName + + + SkuSize + + + SkuTier + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchProperties + + + + + + + + + + + + + + + + + + + + + + + + Description + + + ExclusionTag + + + FriendlyName + + + HostPoolType + + + TimeZone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + Description + + + ExclusionTag + + + FriendlyName + + + HostPoolType + + + ObjectId + + + TimeZone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingSchedule + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingSchedule + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DaysOfWeek + + + Name + + + OffPeakLoadBalancingAlgorithm + + + OffPeakStartTime + + + PeakLoadBalancingAlgorithm + + + PeakStartTime + + + RampDownCapacityThresholdPct + + + RampDownForceLogoffUser + + + RampDownLoadBalancingAlgorithm + + + RampDownMinimumHostsPct + + + RampDownNotificationMessage + + + RampDownStartTime + + + RampDownStopHostsWhen + + + RampDownWaitTimeMinute + + + RampUpCapacityThresholdPct + + + RampUpLoadBalancingAlgorithm + + + RampUpMinimumHostsPct + + + RampUpStartTime + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimeProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimeProperties + + + + + + + + + + + + + + + Time + + + TimeZone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowProperties + + + + + + + + + + + + + + + DaysOfWeek + + + Hour + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SendMessage + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SendMessage + + + + + + + + + + + + + + + MessageBody + + + MessageTitle + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHost + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHost + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties + + + + + + + + + + + + + + + + + + MaintenanceType + + + MaintenanceWindowTimeZone + + + UseSessionHostLocalTime + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties + + + + + + + + + + + + + + + + + + DiskType + + + VMCustomConfigurationUri + + + VMSizeId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetails + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetails + + + + + + + + + + + + + + + + + + ErrorCode + + + LastHealthCheckDateTime + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReport + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReport + + + + + + + + + + + + + + + HealthCheckName + + + HealthCheckResult + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatch + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatch + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchProperties + + + + + + + + + + + + + + + AllowNewSession + + + AssignedUser + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AgentVersion + + + AllowNewSession + + + AssignedUser + + + ImageResourceId + + + ImageType + + + LastHeartBeat + + + LastSessionHostUpdateTime + + + LastUpdateTime + + + OSVersion + + + ObjectId + + + ResourceId + + + Session + + + SessionHostConfigurationLastUpdateTime + + + Status + + + StatusTimestamp + + + SxSStackVersion + + + UpdateErrorMessage + + + UpdateState + + + UpdateStatus + + + VirtualMachineId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItem + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItem + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemProperties + + + + + + + + + + + + + + + + + + + + + + + + AppAlias + + + CommandLineArgument + + + FilePath + + + IconIndex + + + IconPath + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatus + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatus + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatusList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatusList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSession + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSession + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + ActiveDirectoryUserName + + + ApplicationType + + + CreateTime + + + ObjectId + + + SessionState + + + UserPrincipalName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Etag + + + IdentityPrincipalId + + + IdentityTenantId + + + IdentityType + + + Kind + + + Location + + + ManagedBy + + + Name + + + PlanName + + + PlanProduct + + + PlanPromotionCode + + + PlanPublisher + + + PlanVersion + + + SkuCapacity + + + SkuFamily + + + SkuName + + + SkuSize + + + SkuTier + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceList + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchProperties + + + + + + + + + + + + + + + + + + + + + ApplicationGroupReference + + + Description + + + FriendlyName + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationGroupReference + + + CloudPcResource + + + Description + + + FriendlyName + + + ObjectId + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + CreatedBy + + + CreatedByType + + + LastModifiedAt + + + LastModifiedBy + + + LastModifiedByType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan + + + + + + + + + + + + + + + + + + + + + + + + Name + + + Product + + + PromotionCode + + + Publisher + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnection + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnection + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionState + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionState + + + + + + + + + + + + + + + + + + ActionsRequired + + + Description + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet + + + + + + + + + + + + + + + + + + + + + + + + + + + Etag + + + Kind + + + Location + + + ManagedBy + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetIdentity + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetIdentity + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetPlan + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetPlan + + + + + + + + + + + + + + + + + + + + + + + + Name + + + Product + + + PromotionCode + + + Publisher + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetSku + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetSku + + + + + + + + + + + + + + + + + + + + + + + + Capacity + + + Family + + + Name + + + Size + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTags + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku + + + + + + + + + + + + + + + + + + + + + + + + Capacity + + + Family + + + Name + + + Size + + + Tier + + + + + + + + \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.nuspec b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.nuspec new file mode 100644 index 000000000000..3d2c6a7bf8ef --- /dev/null +++ b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.nuspec @@ -0,0 +1,32 @@ + + + + Az.DesktopVirtualizationApi + 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/desktopvirtualization/Az.DesktopVirtualizationApi.psd1 b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psd1 new file mode 100644 index 000000000000..18c4a66b8d01 --- /dev/null +++ b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = 'ac133dad-bdae-44b7-b4e3-b7f606c3f27e' + RootModule = './Az.DesktopVirtualizationApi.psm1' + ModuleVersion = '0.1.0' + CompatiblePSEditions = 'Core', 'Desktop' + Author = 'Microsoft Corporation' + CompanyName = 'Microsoft Corporation' + Copyright = 'Microsoft Corporation. All rights reserved.' + Description = 'Microsoft Azure PowerShell: DesktopVirtualizationApi cmdlets' + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + RequiredAssemblies = './bin/Az.DesktopVirtualizationApi.private.dll' + FormatsToProcess = './Az.DesktopVirtualizationApi.format.ps1xml' + FunctionsToExport = 'Disconnect-AzDesktopVirtualizationApiUserSession', 'Expand-AzDesktopVirtualizationApiMsixImage', 'Get-AzDesktopVirtualizationApiApplication', 'Get-AzDesktopVirtualizationApiApplicationGroup', 'Get-AzDesktopVirtualizationApiDesktop', 'Get-AzDesktopVirtualizationApiHostPool', 'Get-AzDesktopVirtualizationApiHostPoolRegistrationToken', 'Get-AzDesktopVirtualizationApiMsixPackage', 'Get-AzDesktopVirtualizationApiPrivateEndpointConnection', 'Get-AzDesktopVirtualizationApiPrivateLinkResource', 'Get-AzDesktopVirtualizationApiScalingPlan', 'Get-AzDesktopVirtualizationApiSessionHost', 'Get-AzDesktopVirtualizationApiStartMenuItem', 'Get-AzDesktopVirtualizationApiUpdateDetail', 'Get-AzDesktopVirtualizationApiUpdateOperationResult', 'Get-AzDesktopVirtualizationApiUpdateValidationOperationResult', 'Get-AzDesktopVirtualizationApiUserSession', 'Get-AzDesktopVirtualizationApiWorkspace', 'Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate', 'New-AzDesktopVirtualizationApiApplication', 'New-AzDesktopVirtualizationApiApplicationGroup', 'New-AzDesktopVirtualizationApiHostPool', 'New-AzDesktopVirtualizationApiMsixPackage', 'New-AzDesktopVirtualizationApiScalingPlan', 'New-AzDesktopVirtualizationApiWorkspace', 'Remove-AzDesktopVirtualizationApiApplication', 'Remove-AzDesktopVirtualizationApiApplicationGroup', 'Remove-AzDesktopVirtualizationApiHostPool', 'Remove-AzDesktopVirtualizationApiMsixPackage', 'Remove-AzDesktopVirtualizationApiPrivateEndpointConnection', 'Remove-AzDesktopVirtualizationApiScalingPlan', 'Remove-AzDesktopVirtualizationApiSessionHost', 'Remove-AzDesktopVirtualizationApiUserSession', 'Remove-AzDesktopVirtualizationApiWorkspace', 'Send-AzDesktopVirtualizationApiUserSessionMessage', 'Update-AzDesktopVirtualizationApiApplication', 'Update-AzDesktopVirtualizationApiApplicationGroup', 'Update-AzDesktopVirtualizationApiDesktop', 'Update-AzDesktopVirtualizationApiHostPool', 'Update-AzDesktopVirtualizationApiHostPoolPost', 'Update-AzDesktopVirtualizationApiMsixPackage', 'Update-AzDesktopVirtualizationApiScalingPlan', 'Update-AzDesktopVirtualizationApiSessionHost', 'Update-AzDesktopVirtualizationApiWorkspace', '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'DesktopVirtualizationApi' + LicenseUri = 'https://aka.ms/azps-license' + ProjectUri = 'https://github.com/Azure/azure-powershell' + ReleaseNotes = '' + } + } +} diff --git a/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psm1 b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psm1 new file mode 100644 index 000000000000..a357dcf79a12 --- /dev/null +++ b/swaggerci/desktopvirtualization/Az.DesktopVirtualizationApi.psm1 @@ -0,0 +1,109 @@ +# region Generated + # ---------------------------------------------------------------------------------- + # + # Copyright Microsoft Corporation + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # http://www.apache.org/licenses/LICENSE-2.0 + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # ---------------------------------------------------------------------------------- + # Load required Az.Accounts module + $accountsName = 'Az.Accounts' + $accountsModule = Get-Module -Name $accountsName + if(-not $accountsModule) { + $localAccountsPath = Join-Path $PSScriptRoot 'generated/modules' + if(Test-Path -Path $localAccountsPath) { + $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 + if($localAccounts) { + $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru + } + } + if(-not $accountsModule) { + $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.2.3' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.2.3 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. For installation instructions, please see: https://docs.microsoft.com/en-us/powershell/azure/install-az-ps" -ErrorAction Stop + } elseif (($accountsModule.Version -lt [System.Version]'2.2.3') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop + } + Write-Information "Loaded Module '$($accountsModule.Name)'" + + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.DesktopVirtualizationApi.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module]::Instance + + # Ask for the shared functionality table + $VTable = Register-AzModule + + # Tweaks the pipeline on module load + $instance.OnModuleLoad = $VTable.OnModuleLoad + + # Tweaks the pipeline per call + $instance.OnNewRequest = $VTable.OnNewRequest + + # Gets shared parameter values + $instance.GetParameterValue = $VTable.GetParameterValue + + # Allows shared module to listen to events from this module + $instance.EventListener = $VTable.EventListener + + # Gets shared argument completers + $instance.ArgumentCompleter = $VTable.ArgumentCompleter + + # The name of the currently selected Azure profile + $instance.ProfileName = $VTable.ProfileName + + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Az.DesktopVirtualizationApi.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/desktopvirtualization/MSSharedLibKey.snk b/swaggerci/desktopvirtualization/MSSharedLibKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..695f1b38774e839e5b90059bfb7f32df1dff4223 GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50098C{E+7Ye`kjtcRG*W zi8#m|)B?I?xgZ^2Sw5D;l4TxtPwG;3)3^j?qDHjEteSTF{rM+4WI`v zCD?tsZ^;k+S&r1&HRMb=j738S=;J$tCKNrc$@P|lZ +function New-Az${ModulePrefix}${ObjectType}Object { + [OutputType('${ObjectTypeWithNamespace}')] + [CmdletBinding(PositionalBinding=`$false)] + Param( +${ParameterDefineScript} + ) + + process { + `$Object = [${ObjectTypeWithNamespace}]::New() +${ParameterAssignScript} + return `$Object + } +} +" + Set-Content -Path $OutputPath -Value $Script +} diff --git a/swaggerci/desktopvirtualization/custom/Az.DesktopVirtualizationApi.custom.psm1 b/swaggerci/desktopvirtualization/custom/Az.DesktopVirtualizationApi.custom.psm1 new file mode 100644 index 000000000000..fd9f4665c017 --- /dev/null +++ b/swaggerci/desktopvirtualization/custom/Az.DesktopVirtualizationApi.custom.psm1 @@ -0,0 +1,17 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.DesktopVirtualizationApi.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '../internal/Az.DesktopVirtualizationApi.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/desktopvirtualization/custom/readme.md b/swaggerci/desktopvirtualization/custom/readme.md new file mode 100644 index 000000000000..5207f94495a5 --- /dev/null +++ b/swaggerci/desktopvirtualization/custom/readme.md @@ -0,0 +1,41 @@ +# Custom +This directory contains custom implementation for non-generated cmdlets for the `Az.DesktopVirtualizationApi` 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.DesktopVirtualizationApi.custom.psm1`. This file should not be modified. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: yes + +## Details +For `Az.DesktopVirtualizationApi` 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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundemental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build. + +## Purpose +This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `../exports` folder. + +## Usage +The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `../exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters: +- Break +- DefaultProfile +- HttpPipelineAppend +- HttpPipelinePrepend +- Proxy +- ProxyCredential +- ProxyUseDefaultCredentials + +These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.DesktopVirtualizationApi`. 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.DesktopVirtualizationApi.DescriptionAttribute` + - Used in C# cmdlets to provide a high-level description of the cmdlet. This is propegated to reference documentation via [help comments](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts. +- `Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DoNotExportAttribute` + - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.DesktopVirtualizationApi`. +- `Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.InternalExportAttribute` + - Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.DesktopVirtualizationApi`. For more information, see [readme.md](../internal/readme.md) in the `../internal` folder. +- `Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/docs/Az.DesktopVirtualizationApi.md b/swaggerci/desktopvirtualization/docs/Az.DesktopVirtualizationApi.md new file mode 100644 index 000000000000..3eb335e8f4a4 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Az.DesktopVirtualizationApi.md @@ -0,0 +1,145 @@ +--- +Module Name: Az.DesktopVirtualizationApi +Module Guid: ac133dad-bdae-44b7-b4e3-b7f606c3f27e +Download Help Link: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi +Help Version: 1.0.0.0 +Locale: en-US +--- + +# Az.DesktopVirtualizationApi Module +## Description +Microsoft Azure PowerShell: DesktopVirtualizationApi cmdlets + +## Az.DesktopVirtualizationApi Cmdlets +### [Disconnect-AzDesktopVirtualizationApiUserSession](Disconnect-AzDesktopVirtualizationApiUserSession.md) +Disconnect a userSession. + +### [Expand-AzDesktopVirtualizationApiMsixImage](Expand-AzDesktopVirtualizationApiMsixImage.md) +Expands and Lists MSIX packages in an Image, given the Image Path. + +### [Get-AzDesktopVirtualizationApiApplication](Get-AzDesktopVirtualizationApiApplication.md) +Get an application. + +### [Get-AzDesktopVirtualizationApiApplicationGroup](Get-AzDesktopVirtualizationApiApplicationGroup.md) +Get an application group. + +### [Get-AzDesktopVirtualizationApiDesktop](Get-AzDesktopVirtualizationApiDesktop.md) +Get a desktop. + +### [Get-AzDesktopVirtualizationApiHostPool](Get-AzDesktopVirtualizationApiHostPool.md) +Get a host pool. + +### [Get-AzDesktopVirtualizationApiHostPoolRegistrationToken](Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md) +Registration token of the host pool. + +### [Get-AzDesktopVirtualizationApiMsixPackage](Get-AzDesktopVirtualizationApiMsixPackage.md) +Get a msixpackage. + +### [Get-AzDesktopVirtualizationApiPrivateEndpointConnection](Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md) +Get a private endpoint connection. + +### [Get-AzDesktopVirtualizationApiPrivateLinkResource](Get-AzDesktopVirtualizationApiPrivateLinkResource.md) +List the private link resources available for this hostpool. + +### [Get-AzDesktopVirtualizationApiScalingPlan](Get-AzDesktopVirtualizationApiScalingPlan.md) +Get a scaling plan. + +### [Get-AzDesktopVirtualizationApiSessionHost](Get-AzDesktopVirtualizationApiSessionHost.md) +Get a session host. + +### [Get-AzDesktopVirtualizationApiStartMenuItem](Get-AzDesktopVirtualizationApiStartMenuItem.md) +List start menu items in the given application group. + +### [Get-AzDesktopVirtualizationApiUpdateDetail](Get-AzDesktopVirtualizationApiUpdateDetail.md) +Operation status of a validate hostpool update. + +### [Get-AzDesktopVirtualizationApiUpdateOperationResult](Get-AzDesktopVirtualizationApiUpdateOperationResult.md) +Operation status of a validate hostpool update. + +### [Get-AzDesktopVirtualizationApiUpdateValidationOperationResult](Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md) +Operation status of a validate hostpool update. + +### [Get-AzDesktopVirtualizationApiUserSession](Get-AzDesktopVirtualizationApiUserSession.md) +Get a userSession. + +### [Get-AzDesktopVirtualizationApiWorkspace](Get-AzDesktopVirtualizationApiWorkspace.md) +Get a workspace. + +### [Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate](Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md) +Control update of a hostpool. + +### [New-AzDesktopVirtualizationApiApplication](New-AzDesktopVirtualizationApiApplication.md) +Create or update an application. + +### [New-AzDesktopVirtualizationApiApplicationGroup](New-AzDesktopVirtualizationApiApplicationGroup.md) +Create or update an applicationGroup. + +### [New-AzDesktopVirtualizationApiHostPool](New-AzDesktopVirtualizationApiHostPool.md) +Create or update a host pool. + +### [New-AzDesktopVirtualizationApiMsixPackage](New-AzDesktopVirtualizationApiMsixPackage.md) +Create or update a MSIX package. + +### [New-AzDesktopVirtualizationApiScalingPlan](New-AzDesktopVirtualizationApiScalingPlan.md) +Create or update a scaling plan. + +### [New-AzDesktopVirtualizationApiWorkspace](New-AzDesktopVirtualizationApiWorkspace.md) +Create or update a workspace. + +### [Remove-AzDesktopVirtualizationApiApplication](Remove-AzDesktopVirtualizationApiApplication.md) +Remove an application. + +### [Remove-AzDesktopVirtualizationApiApplicationGroup](Remove-AzDesktopVirtualizationApiApplicationGroup.md) +Remove an applicationGroup. + +### [Remove-AzDesktopVirtualizationApiHostPool](Remove-AzDesktopVirtualizationApiHostPool.md) +Remove a host pool. + +### [Remove-AzDesktopVirtualizationApiMsixPackage](Remove-AzDesktopVirtualizationApiMsixPackage.md) +Remove an MSIX Package. + +### [Remove-AzDesktopVirtualizationApiPrivateEndpointConnection](Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md) +Remove a connection. + +### [Remove-AzDesktopVirtualizationApiScalingPlan](Remove-AzDesktopVirtualizationApiScalingPlan.md) +Remove a scaling plan. + +### [Remove-AzDesktopVirtualizationApiSessionHost](Remove-AzDesktopVirtualizationApiSessionHost.md) +Remove a SessionHost. + +### [Remove-AzDesktopVirtualizationApiUserSession](Remove-AzDesktopVirtualizationApiUserSession.md) +Remove a userSession. + +### [Remove-AzDesktopVirtualizationApiWorkspace](Remove-AzDesktopVirtualizationApiWorkspace.md) +Remove a workspace. + +### [Send-AzDesktopVirtualizationApiUserSessionMessage](Send-AzDesktopVirtualizationApiUserSessionMessage.md) +Send a message to a user. + +### [Update-AzDesktopVirtualizationApiApplication](Update-AzDesktopVirtualizationApiApplication.md) +Update an application. + +### [Update-AzDesktopVirtualizationApiApplicationGroup](Update-AzDesktopVirtualizationApiApplicationGroup.md) +Update an applicationGroup. + +### [Update-AzDesktopVirtualizationApiDesktop](Update-AzDesktopVirtualizationApiDesktop.md) +Update a desktop. + +### [Update-AzDesktopVirtualizationApiHostPool](Update-AzDesktopVirtualizationApiHostPool.md) +Update a host pool. + +### [Update-AzDesktopVirtualizationApiHostPoolPost](Update-AzDesktopVirtualizationApiHostPoolPost.md) +Initiate update of a hostpool. + +### [Update-AzDesktopVirtualizationApiMsixPackage](Update-AzDesktopVirtualizationApiMsixPackage.md) +Update an MSIX Package. + +### [Update-AzDesktopVirtualizationApiScalingPlan](Update-AzDesktopVirtualizationApiScalingPlan.md) +Update a scaling plan. + +### [Update-AzDesktopVirtualizationApiSessionHost](Update-AzDesktopVirtualizationApiSessionHost.md) +Update a session host. + +### [Update-AzDesktopVirtualizationApiWorkspace](Update-AzDesktopVirtualizationApiWorkspace.md) +Update a workspace. + diff --git a/swaggerci/desktopvirtualization/docs/Disconnect-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/docs/Disconnect-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..3c1ebde47872 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Disconnect-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/disconnect-azdesktopvirtualizationapiusersession +schema: 2.0.0 +--- + +# Disconnect-AzDesktopVirtualizationApiUserSession + +## SYNOPSIS +Disconnect a userSession. + +## SYNTAX + +### Disconnect (Default) +``` +Disconnect-AzDesktopVirtualizationApiUserSession -HostPoolName -Id + -ResourceGroupName -SessionHostName [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DisconnectViaIdentity +``` +Disconnect-AzDesktopVirtualizationApiUserSession -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disconnect a userSession. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Disconnect +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Id +The name of the user session within the specified session host + +```yaml +Type: System.String +Parameter Sets: Disconnect +Aliases: UserSessionId + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DisconnectViaIdentity +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: Disconnect +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostName +The name of the session host within the specified host pool + +```yaml +Type: System.String +Parameter Sets: Disconnect +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: Disconnect +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Expand-AzDesktopVirtualizationApiMsixImage.md b/swaggerci/desktopvirtualization/docs/Expand-AzDesktopVirtualizationApiMsixImage.md new file mode 100644 index 000000000000..8781ea4cec92 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Expand-AzDesktopVirtualizationApiMsixImage.md @@ -0,0 +1,246 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/expand-azdesktopvirtualizationapimsiximage +schema: 2.0.0 +--- + +# Expand-AzDesktopVirtualizationApiMsixImage + +## SYNOPSIS +Expands and Lists MSIX packages in an Image, given the Image Path. + +## SYNTAX + +### ExpandExpanded (Default) +``` +Expand-AzDesktopVirtualizationApiMsixImage -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-Uri ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Expand +``` +Expand-AzDesktopVirtualizationApiMsixImage -HostPoolName -ResourceGroupName + -MsixImageUri [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### ExpandViaIdentity +``` +Expand-AzDesktopVirtualizationApiMsixImage -InputObject + -MsixImageUri [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### ExpandViaIdentityExpanded +``` +Expand-AzDesktopVirtualizationApiMsixImage -InputObject [-Uri ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Expands and Lists MSIX packages in an Image, given the Image Path. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Expand, ExpandExpanded +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: ExpandViaIdentity, ExpandViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -MsixImageUri +Represents URI referring to MSIX Image +To construct, see NOTES section for MSIXIMAGEURI properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri +Parameter Sets: Expand, ExpandViaIdentity +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: Expand, ExpandExpanded +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: Expand, ExpandExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Uri +URI to Image + +```yaml +Type: System.String +Parameter Sets: ExpandExpanded, ExpandViaIdentityExpanded +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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +MSIXIMAGEURI : Represents URI referring to MSIX Image + - `[Uri ]`: URI to Image + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..1c0d8ba0c6c7 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplication +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiApplication + +## SYNOPSIS +Get an application. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiApplication -GroupName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiApplication -GroupName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiApplication -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get an application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupName +The name of the application group + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: ApplicationGroupName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the application within the specified application group + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ApplicationName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..bc11a0372376 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,193 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplicationgroup +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiApplicationGroup + +## SYNOPSIS +Get an application group. + +## SYNTAX + +### List1 (Default) +``` +Get-AzDesktopVirtualizationApiApplicationGroup [-SubscriptionId ] [-Filter ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiApplicationGroup -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiApplicationGroup -InputObject + [-DefaultProfile ] [] +``` + +### List +``` +Get-AzDesktopVirtualizationApiApplicationGroup -ResourceGroupName [-SubscriptionId ] + [-Filter ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get an application group. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +OData filter expression. +Valid properties for filtering are applicationGroupType. + +```yaml +Type: System.String +Parameter Sets: List, List1 +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the application group + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ApplicationGroupName + +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, 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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiDesktop.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiDesktop.md new file mode 100644 index 000000000000..f378b7ed1509 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiDesktop.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapidesktop +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiDesktop + +## SYNOPSIS +Get a desktop. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiDesktop -ApplicationGroupName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiDesktop -ApplicationGroupName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiDesktop -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a desktop. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupName +The name of the application group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the desktop within the specified desktop group + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DesktopName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..39de040f8661 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,177 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpool +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiHostPool + +## SYNOPSIS +Get a host pool. + +## SYNTAX + +### List1 (Default) +``` +Get-AzDesktopVirtualizationApiHostPool [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiHostPool -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiHostPool -InputObject + [-DefaultProfile ] [] +``` + +### List +``` +Get-AzDesktopVirtualizationApiHostPool -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a host pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: HostPoolName + +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, 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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md new file mode 100644 index 000000000000..ba4f0b5cdd6b --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md @@ -0,0 +1,196 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpoolregistrationtoken +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiHostPoolRegistrationToken + +## SYNOPSIS +Registration token of the host pool. + +## SYNTAX + +### Retrieve (Default) +``` +Get-AzDesktopVirtualizationApiHostPoolRegistrationToken -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### RetrieveViaIdentity +``` +Get-AzDesktopVirtualizationApiHostPoolRegistrationToken -InputObject + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Registration token of the host pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Retrieve +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: RetrieveViaIdentity +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: Retrieve +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: Retrieve +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..82c61bc3f5de --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapimsixpackage +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiMsixPackage + +## SYNOPSIS +Get a msixpackage. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiMsixPackage -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiMsixPackage -FullName -HostPoolName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiMsixPackage -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a msixpackage. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FullName +The version specific package full name of the MSIX package within specified hostpool + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: MsixPackageFullName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md new file mode 100644 index 000000000000..dbcaf037d0ce --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md @@ -0,0 +1,219 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivateendpointconnection +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiPrivateEndpointConnection + +## SYNOPSIS +Get a private endpoint connection. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -HostPoolName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get1 +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -Name -ResourceGroupName + -WorkspaceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -InputObject + [-DefaultProfile ] [] +``` + +### GetViaIdentity1 +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -InputObject + [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzDesktopVirtualizationApiPrivateEndpointConnection -ResourceGroupName -WorkspaceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a private endpoint connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity, GetViaIdentity1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection associated with the Azure resource + +```yaml +Type: System.String +Parameter Sets: Get, Get1 +Aliases: PrivateEndpointConnectionName + +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, Get1, List, 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, Get1, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: Get1, List1 +Aliases: + +Required: True +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateLinkResource.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateLinkResource.md new file mode 100644 index 000000000000..7e798e30ab29 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiPrivateLinkResource.md @@ -0,0 +1,142 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivatelinkresource +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiPrivateLinkResource + +## SYNOPSIS +List the private link resources available for this hostpool. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiPrivateLinkResource -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzDesktopVirtualizationApiPrivateLinkResource -ResourceGroupName -WorkspaceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +List the private link resources available for this hostpool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: List +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 +``` + +### -WorkspaceName +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: List1 +Aliases: + +Required: True +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.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..00fc5cfdde5a --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,198 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiscalingplan +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiScalingPlan + +## SYNOPSIS +Get a scaling plan. + +## SYNTAX + +### List1 (Default) +``` +Get-AzDesktopVirtualizationApiScalingPlan [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiScalingPlan -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiScalingPlan -InputObject + [-DefaultProfile ] [] +``` + +### List +``` +Get-AzDesktopVirtualizationApiScalingPlan -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### List2 +``` +Get-AzDesktopVirtualizationApiScalingPlan -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a scaling plan. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: List2 +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the scaling plan. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ScalingPlanName + +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, List2 +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, List2 +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..fb59360e2699 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapisessionhost +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiSessionHost + +## SYNOPSIS +Get a session host. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiSessionHost -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiSessionHost -HostPoolName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiSessionHost -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a session host. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the session host within the specified host pool + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: SessionHostName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiStartMenuItem.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiStartMenuItem.md new file mode 100644 index 000000000000..ecb023354118 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiStartMenuItem.md @@ -0,0 +1,120 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapistartmenuitem +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiStartMenuItem + +## SYNOPSIS +List start menu items in the given application group. + +## SYNTAX + +``` +Get-AzDesktopVirtualizationApiStartMenuItem -ApplicationGroupName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +List start menu items in the given application group. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupName +The name of the application group + +```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.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateDetail.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateDetail.md new file mode 100644 index 000000000000..1624cea964f6 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateDetail.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatedetail +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiUpdateDetail + +## SYNOPSIS +Operation status of a validate hostpool update. + +## SYNTAX + +### Get (Default) +``` +Get-AzDesktopVirtualizationApiUpdateDetail -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiUpdateDetail -InputObject + [-DefaultProfile ] [] +``` + +### List +``` +Get-AzDesktopVirtualizationApiUpdateDetail -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Operation status of a validate hostpool update. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateOperationResult.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateOperationResult.md new file mode 100644 index 000000000000..204ab72341c2 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateOperationResult.md @@ -0,0 +1,195 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdateoperationresult +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiUpdateOperationResult + +## SYNOPSIS +Operation status of a validate hostpool update. + +## SYNTAX + +### Get (Default) +``` +Get-AzDesktopVirtualizationApiUpdateOperationResult -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiUpdateOperationResult -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [] +``` + +## DESCRIPTION +Operation status of a validate hostpool update. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md new file mode 100644 index 000000000000..52cfe2c2bc08 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md @@ -0,0 +1,196 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatevalidationoperationresult +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiUpdateValidationOperationResult + +## SYNOPSIS +Operation status of a validate hostpool update. + +## SYNTAX + +### Get (Default) +``` +Get-AzDesktopVirtualizationApiUpdateValidationOperationResult -HostPoolName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiUpdateValidationOperationResult -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [] +``` + +## DESCRIPTION +Operation status of a validate hostpool update. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..3641f8acb00e --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiusersession +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiUserSession + +## SYNOPSIS +Get a userSession. + +## SYNTAX + +### List (Default) +``` +Get-AzDesktopVirtualizationApiUserSession -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiUserSession -HostPoolName -Id -ResourceGroupName + -SessionHostName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiUserSession -InputObject + [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzDesktopVirtualizationApiUserSession -HostPoolName -ResourceGroupName + -SessionHostName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a userSession. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +OData filter expression. +Valid properties for filtering are userprincipalname and sessionstate. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Get, List, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Id +The name of the user session within the specified session host + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: UserSessionId + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +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, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostName +The name of the session host within the specified host pool + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..8d08d08a0cdf --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Get-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,177 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiworkspace +schema: 2.0.0 +--- + +# Get-AzDesktopVirtualizationApiWorkspace + +## SYNOPSIS +Get a workspace. + +## SYNTAX + +### List1 (Default) +``` +Get-AzDesktopVirtualizationApiWorkspace [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzDesktopVirtualizationApiWorkspace -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzDesktopVirtualizationApiWorkspace -InputObject + [-DefaultProfile ] [] +``` + +### List +``` +Get-AzDesktopVirtualizationApiWorkspace -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a workspace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: WorkspaceName + +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, 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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md b/swaggerci/desktopvirtualization/docs/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md new file mode 100644 index 000000000000..3a78a260beb7 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/invoke-azdesktopvirtualizationapicontrolhostpoolupdate +schema: 2.0.0 +--- + +# Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate + +## SYNOPSIS +Control update of a hostpool. + +## SYNTAX + +### ControlExpanded (Default) +``` +Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-Action ] [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### Control +``` +Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate -HostPoolName -ResourceGroupName + -HostPoolControlParameter [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### ControlViaIdentity +``` +Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate -InputObject + -HostPoolControlParameter [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### ControlViaIdentityExpanded +``` +Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate -InputObject + [-Action ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Control update of a hostpool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -Action +Action types for controlling hostpool update. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction +Parameter Sets: ControlExpanded, ControlViaIdentityExpanded +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 +``` + +### -HostPoolControlParameter +Represents properties for a hostpool update. +To construct, see NOTES section for HOSTPOOLCONTROLPARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter +Parameter Sets: Control, ControlViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Control, ControlExpanded +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: ControlViaIdentity, ControlViaIdentityExpanded +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: Control, ControlExpanded +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: Control, ControlExpanded +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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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. + + +HOSTPOOLCONTROLPARAMETER : Represents properties for a hostpool update. + - `[Action ]`: Action types for controlling hostpool update. + +INPUTOBJECT : Identity Parameter + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..8915cc1baf30 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,335 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplication +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiApplication + +## SYNOPSIS +Create or update an application. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiApplication -GroupName -Name -ResourceGroupName + -CommandLineSetting [-SubscriptionId ] + [-ApplicationType ] [-CommandLineArgument ] [-Description ] + [-FilePath ] [-FriendlyName ] [-IconIndex ] [-IconPath ] + [-MsixPackageApplicationId ] [-MsixPackageFamilyName ] [-ShowInPortal] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update an application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationType +Resource Type of Application. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CommandLineArgument +Command Line Arguments for Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CommandLineSetting +Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting +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 +``` + +### -Description +Description of Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath +Specifies a path for the executable file for the application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupName +The name of the application group + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApplicationGroupName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconIndex +Index of the icon. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconPath +Path to icon. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MsixPackageApplicationId +Specifies the package application Id for MSIX applications + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MsixPackageFamilyName +Specifies the package family name for MSIX applications + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the application within the specified application group + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApplicationName + +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 +``` + +### -ShowInPortal +Specifies whether to show the RemoteApp program in the RD Web Access server. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..967e3d6ff375 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,485 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplicationgroup +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiApplicationGroup + +## SYNOPSIS +Create or update an applicationGroup. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiApplicationGroup -Name -ResourceGroupName + -ApplicationGroupType -HostPoolArmPath [-SubscriptionId ] + [-Description ] [-FriendlyName ] [-IdentityType ] [-Kind ] + [-Location ] [-ManagedBy ] [-MigrationRequestMigrationPath ] + [-MigrationRequestOperation ] [-PlanName ] [-PlanProduct ] + [-PlanPromotionCode ] [-PlanPublisher ] [-PlanVersion ] [-SkuCapacity ] + [-SkuFamily ] [-SkuName ] [-SkuSize ] [-SkuTier ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update an applicationGroup. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupType +Resource Type of ApplicationGroup. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType +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 +``` + +### -Description +Description of ApplicationGroup. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of ApplicationGroup. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolArmPath +HostPool arm path of ApplicationGroup. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +The identity type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. +ApiApps are a kind of Microsoft.Web/sites type. +If supported, the resource provider must validate and persist this value. + +```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: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedBy +The fully qualified resource ID of the resource that manages this resource. +Indicates if this resource is managed by another Azure resource. +If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MigrationRequestMigrationPath +The path to the legacy object to migrate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MigrationRequestOperation +The type of operation for migration. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the application group + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApplicationGroupName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanName +A user defined name of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanProduct +The 3rd Party artifact that is being procured. +E.g. +NewRelic. +Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPromotionCode +A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPublisher +The publisher of the 3rd Party Artifact that is being bought. +E.g. +NewRelic + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanVersion +The version of the desired product/artifact. + +```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 +``` + +### -SkuCapacity +If the SKU supports scale out/in then the capacity integer should be included. +If scale out/in is not possible for the resource this may be omitted. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuFamily +If the service has different generations of hardware, for the same SKU, then that can be captured here. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The name of the SKU. +Ex - P3. +It is typically a letter+number code + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuSize +The SKU size. +When the name field is the combination of tier and some other value, this would be the standalone code. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier +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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..03f22958d1bb --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,886 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapihostpool +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiHostPool + +## SYNOPSIS +Create or update a host pool. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiHostPool -Name -ResourceGroupName -HostPoolType + -LoadBalancerType -PreferredAppGroupType + [-SubscriptionId ] [-CustomRdpProperty ] [-Description ] [-FriendlyName ] + [-IdentityType ] [-Kind ] [-Location ] [-ManagedBy ] + [-MaxSessionLimit ] [-MigrationRequestMigrationPath ] [-MigrationRequestOperation ] + [-PersonalDesktopAssignmentType ] [-PlanName ] [-PlanProduct ] + [-PlanPromotionCode ] [-PlanPublisher ] [-PlanVersion ] + [-PrimaryWindowDayOfWeek ] [-PrimaryWindowHour ] + [-PublicNetworkAccess ] [-RegistrationInfoExpirationTime ] + [-RegistrationInfoRegistrationTokenOperation ] [-RegistrationInfoToken ] + [-Ring ] [-SecondaryWindowDaysOfWeek ] [-SecondaryWindowHour ] + [-SessionHostComponentUpdateConfigurationMaintenanceType ] + [-SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ] + [-SessionHostComponentUpdateConfigurationUseSessionHostLocalTime] + [-SessionHostConfiguration ] [-SkuCapacity ] + [-SkuFamily ] [-SkuName ] [-SkuSize ] [-SkuTier ] + [-SsoadfsAuthority ] [-SsoClientId ] [-SsoClientSecretKeyVaultPath ] + [-SsoSecretType ] [-StartVMOnConnect] [-Tag ] [-ValidationEnvironment] + [-VMTemplate ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a host pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CustomRdpProperty +Custom rdp property of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolType +HostPool type for desktop. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +The identity type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. +ApiApps are a kind of Microsoft.Web/sites type. +If supported, the resource provider must validate and persist this value. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoadBalancerType +The type of the load balancer. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType +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: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedBy +The fully qualified resource ID of the resource that manages this resource. +Indicates if this resource is managed by another Azure resource. +If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MaxSessionLimit +The max session limit of HostPool. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MigrationRequestMigrationPath +The path to the legacy object to migrate. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MigrationRequestOperation +The type of operation for migration. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: HostPoolName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersonalDesktopAssignmentType +PersonalDesktopAssignment type for HostPool. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanName +A user defined name of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanProduct +The 3rd Party artifact that is being procured. +E.g. +NewRelic. +Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPromotionCode +A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPublisher +The publisher of the 3rd Party Artifact that is being bought. +E.g. +NewRelic + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanVersion +The version of the desired product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PreferredAppGroupType +The type of preferred application group type, default to Desktop Application Group + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrimaryWindowDayOfWeek +Day of the week. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrimaryWindowHour +The update start hour of the day. +(0 - 23) + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistrationInfoExpirationTime +Expiration time of registration token. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistrationInfoRegistrationTokenOperation +The type of resetting the token. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistrationInfoToken +The registration token base64 encoded string. + +```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 +``` + +### -Ring +The ring number of HostPool. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecondaryWindowDaysOfWeek +Set of days of the week on which this schedule is active. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecondaryWindowHour +The update start hour of the day. +(0 - 23) + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationMaintenanceType +The type of maintenance for session host components. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone +Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. +Must be set if useLocalTime is true. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationUseSessionHostLocalTime +Whether to use localTime of the virtual machine. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostConfiguration +The session host configurations of HostPool. +To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +If the SKU supports scale out/in then the capacity integer should be included. +If scale out/in is not possible for the resource this may be omitted. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuFamily +If the service has different generations of hardware, for the same SKU, then that can be captured here. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The name of the SKU. +Ex - P3. +It is typically a letter+number code + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuSize +The SKU size. +When the name field is the combination of tier and some other value, this would be the standalone code. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoadfsAuthority +URL to customer ADFS server for signing WVD SSO certificates. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoClientId +ClientId for the registered Relying Party used to issue WVD SSO certificates. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoClientSecretKeyVaultPath +Path to Azure KeyVault storing the secret used for communication to ADFS. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoSecretType +The type of single sign on Secret Type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartVMOnConnect +The flag to turn on/off StartVMOnConnect feature. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +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 +``` + +### -ValidationEnvironment +Is validation environment. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VMTemplate +VM template for sessionhosts configuration within hostpool. + +```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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + +## 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. + + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + - `[DiskType ]`: The disk type used by virtual machine in hostpool session host. + - `[DomainAdminPasswordKeyVaultResourceId ]`: The keyvault resource id to the keyvault secrets. + - `[DomainAdminPasswordSecretName ]`: The keyvault secret name the password is stored in. + - `[DomainAdminUserName ]`: The user name to the account. + - `[DomainInfoJoinType ]`: The type of domain join done by the virtual machine. + - `[DomainInfoMdmProviderGuid ]`: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + - `[DomainInfoName ]`: The domain a virtual machine connected to a hostpool will join. + - `[ImageInfoCustomId ]`: The resource id of the custom image or shared image. Image type must be CustomImage. + - `[ImageInfoStorageBlobUri ]`: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + - `[ImageInfoType ]`: The type of image session hosts use in the hostpool. + - `[LocalAdminPasswordKeyVaultResourceId ]`: The keyvault resource id to the keyvault secrets. + - `[LocalAdminPasswordSecretName ]`: The keyvault secret name the password is stored in. + - `[LocalAdminUserName ]`: The user name to the account. + - `[MarketPlaceInfoExactVersion ]`: The exact version of the image. + - `[MarketPlaceInfoOffer ]`: The offer of the image. + - `[MarketPlaceInfoPublisher ]`: The publisher of the image. + - `[MarketPlaceInfoSku ]`: The sku of the image. + - `[VMCustomConfigurationUri ]`: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + - `[VMSizeId ]`: The id of the size of a virtual machine connected to a hostpool. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..c17aa258537d --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,359 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapimsixpackage +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiMsixPackage + +## SYNOPSIS +Create or update a MSIX package. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiMsixPackage -FullName -HostPoolName + -ResourceGroupName [-SubscriptionId ] [-DisplayName ] [-ImagePath ] + [-IsActive] [-IsRegularRegistration] [-LastUpdated ] + [-PackageApplication ] [-PackageDependency ] + [-PackageFamilyName ] [-PackageName ] [-PackageRelativePath ] [-Version ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a MSIX package. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisplayName +User friendly Name to be displayed in the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FullName +The version specific package full name of the MSIX package within specified hostpool + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: MsixPackageFullName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ImagePath +VHD/CIM image path on Network Share. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IsActive +Make this version of the package the active one across the hostpool. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IsRegularRegistration +Specifies how to register Package in feed. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LastUpdated +Date Package was last updated, found in the appxmanifest.xml. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PackageApplication +List of package applications. + +To construct, see NOTES section for PACKAGEAPPLICATION properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PackageDependency +List of package dependencies. + +To construct, see NOTES section for PACKAGEDEPENDENCY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PackageFamilyName +Package Family Name from appxmanifest.xml. +Contains Package Name and Publisher name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PackageName +Package Name from appxmanifest.xml. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PackageRelativePath +Relative Path to the package inside the image. + +```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 +``` + +### -Version +Package Version found in the appxmanifest.xml. + +```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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + +## 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. + + +PACKAGEAPPLICATION : List of package applications. + - `[AppId ]`: Package Application Id, found in appxmanifest.xml. + - `[AppUserModelId ]`: Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + - `[Description ]`: Description of Package Application. + - `[FriendlyName ]`: User friendly name. + - `[IconImageName ]`: User friendly name. + - `[RawIcon ]`: the icon a 64 bit string as a byte array. + - `[RawPng ]`: the icon a 64 bit string as a byte array. + +PACKAGEDEPENDENCY : List of package dependencies. + - `[DependencyName ]`: Name of package dependency. + - `[MinVersion ]`: Dependency version required. + - `[Publisher ]`: Name of dependency publisher. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..965413fd0242 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,531 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiscalingplan +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiScalingPlan + +## SYNOPSIS +Create or update a scaling plan. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiScalingPlan -Name -ResourceGroupName + [-SubscriptionId ] [-Description ] [-ExclusionTag ] [-FriendlyName ] + [-HostPoolReference ] [-HostPoolType ] + [-IdentityType ] [-Kind ] [-Location ] [-ManagedBy ] + [-PlanName ] [-PlanProduct ] [-PlanPromotionCode ] [-PlanPublisher ] + [-PlanVersion ] [-Schedule ] [-SkuCapacity ] [-SkuFamily ] + [-SkuName ] [-SkuSize ] [-SkuTier ] [-Tag ] [-TimeZone ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a scaling plan. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExclusionTag +Exclusion tag for scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +User friendly name of scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolReference +List of ScalingHostPoolReference definitions. +To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolType +HostPool type for desktop. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +The identity type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. +ApiApps are a kind of Microsoft.Web/sites type. +If supported, the resource provider must validate and persist this value. + +```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: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedBy +The fully qualified resource ID of the resource that manages this resource. +Indicates if this resource is managed by another Azure resource. +If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ScalingPlanName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanName +A user defined name of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanProduct +The 3rd Party artifact that is being procured. +E.g. +NewRelic. +Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPromotionCode +A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPublisher +The publisher of the 3rd Party Artifact that is being bought. +E.g. +NewRelic + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanVersion +The version of the desired product/artifact. + +```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 +``` + +### -Schedule +List of ScalingSchedule definitions. +To construct, see NOTES section for SCHEDULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +If the SKU supports scale out/in then the capacity integer should be included. +If scale out/in is not possible for the resource this may be omitted. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuFamily +If the service has different generations of hardware, for the same SKU, then that can be captured here. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The name of the SKU. +Ex - P3. +It is typically a letter+number code + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuSize +The SKU size. +When the name field is the combination of tier and some other value, this would be the standalone code. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier +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 +``` + +### -TimeZone +Timezone of the scaling plan. + +```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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + +## 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. + + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + - `[HostPoolArmPath ]`: Arm path of referenced hostpool. + - `[ScalingPlanEnabled ]`: Is the scaling plan enabled for this hostpool. + +SCHEDULE : List of ScalingSchedule definitions. + - `[DaysOfWeek ]`: Set of days of the week on which this schedule is active. + - `[Name ]`: Name of the scaling schedule. + - `[OffPeakLoadBalancingAlgorithm ]`: Load balancing algorithm for off-peak period. + - `[OffPeakStartTime ]`: Starting time for off-peak period. + - `[PeakLoadBalancingAlgorithm ]`: Load balancing algorithm for peak period. + - `[PeakStartTime ]`: Starting time for peak period. + - `[RampDownCapacityThresholdPct ]`: Capacity threshold for ramp down period. + - `[RampDownForceLogoffUser ]`: Should users be logged off forcefully from hosts. + - `[RampDownLoadBalancingAlgorithm ]`: Load balancing algorithm for ramp down period. + - `[RampDownMinimumHostsPct ]`: Minimum host percentage for ramp down period. + - `[RampDownNotificationMessage ]`: Notification message for users during ramp down period. + - `[RampDownStartTime ]`: Starting time for ramp down period. + - `[RampDownStopHostsWhen ]`: Specifies when to stop hosts during ramp down period. + - `[RampDownWaitTimeMinute ]`: Number of minutes to wait to stop hosts during ramp down period. + - `[RampUpCapacityThresholdPct ]`: Capacity threshold for ramp up period. + - `[RampUpLoadBalancingAlgorithm ]`: Load balancing algorithm for ramp up period. + - `[RampUpMinimumHostsPct ]`: Minimum host percentage for ramp up period. + - `[RampUpStartTime ]`: Starting time for ramp up period. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..f4c73f1b32c5 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/New-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,454 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiworkspace +schema: 2.0.0 +--- + +# New-AzDesktopVirtualizationApiWorkspace + +## SYNOPSIS +Create or update a workspace. + +## SYNTAX + +``` +New-AzDesktopVirtualizationApiWorkspace -Name -ResourceGroupName [-SubscriptionId ] + [-ApplicationGroupReference ] [-Description ] [-FriendlyName ] + [-IdentityType ] [-Kind ] [-Location ] [-ManagedBy ] + [-PlanName ] [-PlanProduct ] [-PlanPromotionCode ] [-PlanPublisher ] + [-PlanVersion ] [-PublicNetworkAccess ] [-SkuCapacity ] + [-SkuFamily ] [-SkuName ] [-SkuSize ] [-SkuTier ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a workspace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupReference +List of applicationGroup resource Ids. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of Workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of Workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +The identity type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. +ApiApps are a kind of Microsoft.Web/sites type. +If supported, the resource provider must validate and persist this value. + +```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: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ManagedBy +The fully qualified resource ID of the resource that manages this resource. +Indicates if this resource is managed by another Azure resource. +If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: WorkspaceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanName +A user defined name of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanProduct +The 3rd Party artifact that is being procured. +E.g. +NewRelic. +Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPromotionCode +A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanPublisher +The publisher of the 3rd Party Artifact that is being bought. +E.g. +NewRelic + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PlanVersion +The version of the desired product/artifact. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +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 +``` + +### -SkuCapacity +If the SKU supports scale out/in then the capacity integer should be included. +If scale out/in is not possible for the resource this may be omitted. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuFamily +If the service has different generations of hardware, for the same SKU, then that can be captured here. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The name of the SKU. +Ex - P3. +It is typically a letter+number code + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuSize +The SKU size. +When the name field is the combination of tier and some other value, this would be the standalone code. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier +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.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..84a173b1ea74 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,226 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplication +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiApplication + +## SYNOPSIS +Remove an application. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiApplication -GroupName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiApplication -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove an application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupName +The name of the application group + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApplicationGroupName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the application within the specified application group + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApplicationName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..b6f05d7b5a93 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,211 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplicationgroup +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiApplicationGroup + +## SYNOPSIS +Remove an applicationGroup. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiApplicationGroup -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiApplicationGroup -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove an applicationGroup. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the application group + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApplicationGroupName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..5a1d2c964b2d --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapihostpool +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiHostPool + +## SYNOPSIS +Remove a host pool. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiHostPool -Name -ResourceGroupName + [-SubscriptionId ] [-Force] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiHostPool -InputObject [-Force] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a host pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force +Force flag to delete sessionHost. + +```yaml +Type: System.Management.Automation.SwitchParameter +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: HostPoolName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..9cb1b1caf587 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapimsixpackage +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiMsixPackage + +## SYNOPSIS +Remove an MSIX Package. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiMsixPackage -FullName -HostPoolName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiMsixPackage -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove an MSIX Package. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FullName +The version specific package full name of the MSIX package within specified hostpool + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: MsixPackageFullName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md new file mode 100644 index 000000000000..1b557b14a3b3 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md @@ -0,0 +1,255 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiprivateendpointconnection +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiPrivateEndpointConnection + +## SYNOPSIS +Remove a connection. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiPrivateEndpointConnection -HostPoolName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### Delete1 +``` +Remove-AzDesktopVirtualizationApiPrivateEndpointConnection -Name -ResourceGroupName + -WorkspaceName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiPrivateEndpointConnection -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity1 +``` +Remove-AzDesktopVirtualizationApiPrivateEndpointConnection -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity, DeleteViaIdentity1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection associated with the Azure resource + +```yaml +Type: System.String +Parameter Sets: Delete, Delete1 +Aliases: PrivateEndpointConnectionName + +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, Delete1 +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, Delete1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WorkspaceName +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: Delete1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..c363bb74c72c --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,211 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiscalingplan +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiScalingPlan + +## SYNOPSIS +Remove a scaling plan. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiScalingPlan -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiScalingPlan -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a scaling plan. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the scaling plan. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ScalingPlanName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..8a5f1ba4ac3d --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapisessionhost +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiSessionHost + +## SYNOPSIS +Remove a SessionHost. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiSessionHost -HostPoolName -Name -ResourceGroupName + [-SubscriptionId ] [-Force] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiSessionHost -InputObject [-Force] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a SessionHost. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force +Force flag to force sessionHost deletion even when userSession exists. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the session host within the specified host pool + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: SessionHostName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..9de940f1579e --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiusersession +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiUserSession + +## SYNOPSIS +Remove a userSession. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiUserSession -HostPoolName -Id -ResourceGroupName + -SessionHostName [-SubscriptionId ] [-Force] [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiUserSession -InputObject [-Force] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a userSession. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Force +Force flag to login off userSession. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Id +The name of the user session within the specified session host + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: UserSessionId + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +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 +``` + +### -SessionHostName +The name of the session host within the specified host pool + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..2ce8d8f6afce --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Remove-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,211 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiworkspace +schema: 2.0.0 +--- + +# Remove-AzDesktopVirtualizationApiWorkspace + +## SYNOPSIS +Remove a workspace. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzDesktopVirtualizationApiWorkspace -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzDesktopVirtualizationApiWorkspace -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a workspace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: WorkspaceName + +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Send-AzDesktopVirtualizationApiUserSessionMessage.md b/swaggerci/desktopvirtualization/docs/Send-AzDesktopVirtualizationApiUserSessionMessage.md new file mode 100644 index 000000000000..14a84b9dc153 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Send-AzDesktopVirtualizationApiUserSessionMessage.md @@ -0,0 +1,309 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/send-azdesktopvirtualizationapiusersessionmessage +schema: 2.0.0 +--- + +# Send-AzDesktopVirtualizationApiUserSessionMessage + +## SYNOPSIS +Send a message to a user. + +## SYNTAX + +### SendExpanded (Default) +``` +Send-AzDesktopVirtualizationApiUserSessionMessage -HostPoolName -ResourceGroupName + -SessionHostName -UserSessionId [-SubscriptionId ] [-MessageBody ] + [-MessageTitle ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### Send +``` +Send-AzDesktopVirtualizationApiUserSessionMessage -HostPoolName -ResourceGroupName + -SessionHostName -UserSessionId -SendMessage [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### SendViaIdentity +``` +Send-AzDesktopVirtualizationApiUserSessionMessage -InputObject + -SendMessage [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### SendViaIdentityExpanded +``` +Send-AzDesktopVirtualizationApiUserSessionMessage -InputObject + [-MessageBody ] [-MessageTitle ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Send a message to a user. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: Send, SendExpanded +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: SendViaIdentity, SendViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -MessageBody +Body of message. + +```yaml +Type: System.String +Parameter Sets: SendExpanded, SendViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageTitle +Title of message. + +```yaml +Type: System.String +Parameter Sets: SendExpanded, SendViaIdentityExpanded +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: Send, SendExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SendMessage +Represents message sent to a UserSession. +To construct, see NOTES section for SENDMESSAGE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage +Parameter Sets: Send, SendViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SessionHostName +The name of the session host within the specified host pool + +```yaml +Type: System.String +Parameter Sets: Send, SendExpanded +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: Send, SendExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -UserSessionId +The name of the user session within the specified session host + +```yaml +Type: System.String +Parameter Sets: Send, SendExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +SENDMESSAGE : Represents message sent to a UserSession. + - `[MessageBody ]`: Body of message. + - `[MessageTitle ]`: Title of message. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..c452ce0f8369 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,399 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplication +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiApplication + +## SYNOPSIS +Update an application. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiApplication -GroupName -Name -ResourceGroupName + [-SubscriptionId ] [-ApplicationType ] [-CommandLineArgument ] + [-CommandLineSetting ] [-Description ] [-FilePath ] + [-FriendlyName ] [-IconIndex ] [-IconPath ] [-MsixPackageApplicationId ] + [-MsixPackageFamilyName ] [-ShowInPortal] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiApplication -InputObject + [-ApplicationType ] [-CommandLineArgument ] + [-CommandLineSetting ] [-Description ] [-FilePath ] + [-FriendlyName ] [-IconIndex ] [-IconPath ] [-MsixPackageApplicationId ] + [-MsixPackageFamilyName ] [-ShowInPortal] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Update an application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationType +Resource Type of Application. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CommandLineArgument +Command Line Arguments for Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CommandLineSetting +Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath +Specifies a path for the executable file for the application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of Application. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupName +The name of the application group + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ApplicationGroupName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconIndex +Index of the icon. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconPath +Path to icon. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -MsixPackageApplicationId +Specifies the package application Id for MSIX applications + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MsixPackageFamilyName +Specifies the package family name for MSIX applications + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the application within the specified application group + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ApplicationName + +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 +``` + +### -ShowInPortal +Specifies whether to show the RemoteApp program in the RD Web Access server. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +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 +tags to be updated + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..f00aba84180c --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplicationgroup +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiApplicationGroup + +## SYNOPSIS +Update an applicationGroup. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiApplicationGroup -Name -ResourceGroupName + [-SubscriptionId ] [-Description ] [-FriendlyName ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiApplicationGroup -InputObject + [-Description ] [-FriendlyName ] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Update an applicationGroup. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of ApplicationGroup. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of ApplicationGroup. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the application group + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ApplicationGroupName + +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 +tags to be updated + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiDesktop.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiDesktop.md new file mode 100644 index 000000000000..5f90a3fe4fac --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiDesktop.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapidesktop +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiDesktop + +## SYNOPSIS +Update a desktop. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiDesktop -ApplicationGroupName -Name + -ResourceGroupName [-SubscriptionId ] [-Description ] [-FriendlyName ] + [-Tag ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiDesktop -InputObject + [-Description ] [-FriendlyName ] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Update a desktop. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupName +The name of the application group + +```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 +``` + +### -Description +Description of Desktop. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of Desktop. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the desktop within the specified desktop group + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: DesktopName + +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 +tags to be updated + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..3fc0a6c65f8e --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,654 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpool +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiHostPool + +## SYNOPSIS +Update a host pool. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiHostPool -Name -ResourceGroupName + [-SubscriptionId ] [-CustomRdpProperty ] [-Description ] [-FriendlyName ] + [-LoadBalancerType ] [-MaxSessionLimit ] + [-PersonalDesktopAssignmentType ] + [-PreferredAppGroupType ] [-PrimaryWindowDayOfWeek ] + [-PrimaryWindowHour ] [-PublicNetworkAccess ] + [-RegistrationInfoExpirationTime ] + [-RegistrationInfoRegistrationTokenOperation ] [-Ring ] + [-SecondaryWindowDaysOfWeek ] [-SecondaryWindowHour ] + [-SessionHostComponentUpdateConfigurationMaintenanceType ] + [-SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ] + [-SessionHostComponentUpdateConfigurationUseSessionHostLocalTime] + [-SessionHostConfiguration ] [-SsoadfsAuthority ] + [-SsoClientId ] [-SsoClientSecretKeyVaultPath ] [-SsoSecretType ] + [-StartVMOnConnect] [-Tag ] [-ValidationEnvironment] [-VMTemplate ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiHostPool -InputObject + [-CustomRdpProperty ] [-Description ] [-FriendlyName ] + [-LoadBalancerType ] [-MaxSessionLimit ] + [-PersonalDesktopAssignmentType ] + [-PreferredAppGroupType ] [-PrimaryWindowDayOfWeek ] + [-PrimaryWindowHour ] [-PublicNetworkAccess ] + [-RegistrationInfoExpirationTime ] + [-RegistrationInfoRegistrationTokenOperation ] [-Ring ] + [-SecondaryWindowDaysOfWeek ] [-SecondaryWindowHour ] + [-SessionHostComponentUpdateConfigurationMaintenanceType ] + [-SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ] + [-SessionHostComponentUpdateConfigurationUseSessionHostLocalTime] + [-SessionHostConfiguration ] [-SsoadfsAuthority ] + [-SsoClientId ] [-SsoClientSecretKeyVaultPath ] [-SsoSecretType ] + [-StartVMOnConnect] [-Tag ] [-ValidationEnvironment] [-VMTemplate ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update a host pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -CustomRdpProperty +Custom rdp property of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of HostPool. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -LoadBalancerType +The type of the load balancer. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MaxSessionLimit +The max session limit of HostPool. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the host pool within the specified resource group + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: HostPoolName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersonalDesktopAssignmentType +PersonalDesktopAssignment type for HostPool. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PreferredAppGroupType +The type of preferred application group type, default to Desktop Application Group + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrimaryWindowDayOfWeek +Day of the week. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrimaryWindowHour +The update start hour of the day. +(0 - 23) + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Enabled to allow this resource to be access from the public network + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistrationInfoExpirationTime +Expiration time of registration token. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegistrationInfoRegistrationTokenOperation +The type of resetting the token. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation +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 +``` + +### -Ring +The ring number of HostPool. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecondaryWindowDaysOfWeek +Set of days of the week on which this schedule is active. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SecondaryWindowHour +The update start hour of the day. +(0 - 23) + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationMaintenanceType +The type of maintenance for session host components. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone +Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. +Must be set if useLocalTime is true. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostComponentUpdateConfigurationUseSessionHostLocalTime +Whether to use localTime of the virtual machine. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SessionHostConfiguration +The session host configurations of HostPool. +To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoadfsAuthority +URL to customer ADFS server for signing WVD SSO certificates. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoClientId +ClientId for the registered Relying Party used to issue WVD SSO certificates. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoClientSecretKeyVaultPath +Path to Azure KeyVault storing the secret used for communication to ADFS. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoSecretType +The type of single sign on Secret Type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StartVMOnConnect +The flag to turn on/off StartVMOnConnect feature. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +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 +tags to be updated + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ValidationEnvironment +Is validation environment. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VMTemplate +VM template for sessionhosts configuration within hostpool. + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + - `[DiskType ]`: The disk type used by virtual machine in hostpool session host. + - `[DomainAdminPasswordKeyVaultResourceId ]`: The keyvault resource id to the keyvault secrets. + - `[DomainAdminPasswordSecretName ]`: The keyvault secret name the password is stored in. + - `[DomainAdminUserName ]`: The user name to the account. + - `[DomainInfoJoinType ]`: The type of domain join done by the virtual machine. + - `[DomainInfoMdmProviderGuid ]`: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + - `[DomainInfoName ]`: The domain a virtual machine connected to a hostpool will join. + - `[ImageInfoCustomId ]`: The resource id of the custom image or shared image. Image type must be CustomImage. + - `[ImageInfoStorageBlobUri ]`: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + - `[ImageInfoType ]`: The type of image session hosts use in the hostpool. + - `[LocalAdminPasswordKeyVaultResourceId ]`: The keyvault resource id to the keyvault secrets. + - `[LocalAdminPasswordSecretName ]`: The keyvault secret name the password is stored in. + - `[LocalAdminUserName ]`: The user name to the account. + - `[MarketPlaceInfoExactVersion ]`: The exact version of the image. + - `[MarketPlaceInfoOffer ]`: The offer of the image. + - `[MarketPlaceInfoPublisher ]`: The publisher of the image. + - `[MarketPlaceInfoSku ]`: The sku of the image. + - `[VMCustomConfigurationUri ]`: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + - `[VMSizeId ]`: The id of the size of a virtual machine connected to a hostpool. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPoolPost.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPoolPost.md new file mode 100644 index 000000000000..4dfe31dd277b --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiHostPoolPost.md @@ -0,0 +1,360 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpoolpost +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiHostPoolPost + +## SYNOPSIS +Initiate update of a hostpool. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiHostPoolPost -HostPoolName -ResourceGroupName + [-SubscriptionId ] [-ParameterLogOffDelaySecond ] [-ParameterLogOffMessage ] + [-ParameterMaintenanceAlert ] [-ParameterMaxVmsRemovedDuringUpdate ] + [-ParameterSaveOriginalDisk] [-ScheduledTime ] [-ScheduledTimeZone ] [-ValidateOnly] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiHostPoolPost -InputObject + [-ParameterLogOffDelaySecond ] [-ParameterLogOffMessage ] + [-ParameterMaintenanceAlert ] [-ParameterMaxVmsRemovedDuringUpdate ] + [-ParameterSaveOriginalDisk] [-ScheduledTime ] [-ScheduledTimeZone ] [-ValidateOnly] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Initiate update of a hostpool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterLogOffDelaySecond +Grace period before logging off users in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterLogOffMessage +Log off message sent to user for logoff. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterMaintenanceAlert +The alerts given to customers for hostpool update. +To construct, see NOTES section for PARAMETERMAINTENANCEALERT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterMaxVmsRemovedDuringUpdate +The maximum virtual machines to be removed during hostpool update. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParameterSaveOriginalDisk +Whether to save original disk. +False by default. + +```yaml +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 +``` + +### -ScheduledTime +The time the hostpool update is schedule for. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScheduledTimeZone +Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. +Must be set if useLocalTime is true. + +```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: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ValidateOnly +When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + +```yaml +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +PARAMETERMAINTENANCEALERT : The alerts given to customers for hostpool update. + - `[BeforeKickOff ]`: Whether to send maintenance alert after or before hostpool update. False by default. + - `[Duration ]`: The duration of the hostpool update in seconds. + - `[Message ]`: The path to the legacy object to migrate. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..dff9617955c3 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,259 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapimsixpackage +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiMsixPackage + +## SYNOPSIS +Update an MSIX Package. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiMsixPackage -FullName -HostPoolName + -ResourceGroupName [-SubscriptionId ] [-DisplayName ] [-IsActive] + [-IsRegularRegistration] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiMsixPackage -InputObject + [-DisplayName ] [-IsActive] [-IsRegularRegistration] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Update an MSIX Package. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisplayName +Display name for MSIX Package. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FullName +The version specific package full name of the MSIX package within specified hostpool + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: MsixPackageFullName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -IsActive +Set a version of the package to be active across hostpool. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IsRegularRegistration +Set Registration mode. +Regular or Delayed. + +```yaml +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 +``` + +### -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 +``` + +### -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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..2fb583bdf3fe --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,348 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiscalingplan +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiScalingPlan + +## SYNOPSIS +Update a scaling plan. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiScalingPlan -Name -ResourceGroupName + [-SubscriptionId ] [-Description ] [-ExclusionTag ] [-FriendlyName ] + [-HostPoolReference ] [-HostPoolType ] + [-Schedule ] [-Tag ] [-TimeZone ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiScalingPlan -InputObject + [-Description ] [-ExclusionTag ] [-FriendlyName ] + [-HostPoolReference ] [-HostPoolType ] + [-Schedule ] [-Tag ] [-TimeZone ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update a scaling plan. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExclusionTag +Exclusion tag for scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +User friendly name of scaling plan. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolReference +List of ScalingHostPoolReference definitions. +To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HostPoolType +HostPool type for desktop. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType +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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the scaling plan. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ScalingPlanName + +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 +``` + +### -Schedule +List of ScalingSchedule definitions. +To construct, see NOTES section for SCHEDULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] +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 +tags to be updated + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TimeZone +Timezone of the scaling plan. + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + +## 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. + + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + - `[HostPoolArmPath ]`: Arm path of referenced hostpool. + - `[ScalingPlanEnabled ]`: Is the scaling plan enabled for this hostpool. + +INPUTOBJECT : Identity Parameter + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +SCHEDULE : List of ScalingSchedule definitions. + - `[DaysOfWeek ]`: Set of days of the week on which this schedule is active. + - `[Name ]`: Name of the scaling schedule. + - `[OffPeakLoadBalancingAlgorithm ]`: Load balancing algorithm for off-peak period. + - `[OffPeakStartTime ]`: Starting time for off-peak period. + - `[PeakLoadBalancingAlgorithm ]`: Load balancing algorithm for peak period. + - `[PeakStartTime ]`: Starting time for peak period. + - `[RampDownCapacityThresholdPct ]`: Capacity threshold for ramp down period. + - `[RampDownForceLogoffUser ]`: Should users be logged off forcefully from hosts. + - `[RampDownLoadBalancingAlgorithm ]`: Load balancing algorithm for ramp down period. + - `[RampDownMinimumHostsPct ]`: Minimum host percentage for ramp down period. + - `[RampDownNotificationMessage ]`: Notification message for users during ramp down period. + - `[RampDownStartTime ]`: Starting time for ramp down period. + - `[RampDownStopHostsWhen ]`: Specifies when to stop hosts during ramp down period. + - `[RampDownWaitTimeMinute ]`: Number of minutes to wait to stop hosts during ramp down period. + - `[RampUpCapacityThresholdPct ]`: Capacity threshold for ramp up period. + - `[RampUpLoadBalancingAlgorithm ]`: Load balancing algorithm for ramp up period. + - `[RampUpMinimumHostsPct ]`: Minimum host percentage for ramp up period. + - `[RampUpStartTime ]`: Starting time for ramp up period. + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..caedf70275f1 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapisessionhost +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiSessionHost + +## SYNOPSIS +Update a session host. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiSessionHost -HostPoolName -Name -ResourceGroupName + [-SubscriptionId ] [-AllowNewSession] [-AssignedUser ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiSessionHost -InputObject + [-AllowNewSession] [-AssignedUser ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Update a session host. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AllowNewSession +Allow a new session. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AssignedUser +User assigned to SessionHost. + +```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 +``` + +### -HostPoolName +The name of the host pool within the specified resource group + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the session host within the specified host pool + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: SessionHostName + +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 +``` + +### -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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..3a8b79b9c617 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/Update-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,275 @@ +--- +external help file: +Module Name: Az.DesktopVirtualizationApi +online version: https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiworkspace +schema: 2.0.0 +--- + +# Update-AzDesktopVirtualizationApiWorkspace + +## SYNOPSIS +Update a workspace. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzDesktopVirtualizationApiWorkspace -Name -ResourceGroupName + [-SubscriptionId ] [-ApplicationGroupReference ] [-Description ] + [-FriendlyName ] [-PublicNetworkAccess ] [-Tag ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzDesktopVirtualizationApiWorkspace -InputObject + [-ApplicationGroupReference ] [-Description ] [-FriendlyName ] + [-PublicNetworkAccess ] [-Tag ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Update a workspace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationGroupReference +List of applicationGroup links. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Description +Description of Workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FriendlyName +Friendly name of Workspace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the workspace + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: WorkspaceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Enabled to allow this resource to be access from the public network + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group. +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 +tags to be updated + +```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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + +## 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 + - `[ApplicationGroupName ]`: The name of the application group + - `[ApplicationName ]`: The name of the application within the specified application group + - `[DesktopName ]`: The name of the desktop within the specified desktop group + - `[HostPoolName ]`: The name of the host pool within the specified resource group + - `[Id ]`: Resource identity path + - `[MsixPackageFullName ]`: The version specific package full name of the MSIX package within specified hostpool + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection associated with the Azure resource + - `[ResourceGroupName ]`: The name of the resource group. The name is case insensitive. + - `[ScalingPlanName ]`: The name of the scaling plan. + - `[SessionHostName ]`: The name of the session host within the specified host pool + - `[SubscriptionId ]`: The ID of the target subscription. + - `[UserSessionId ]`: The name of the user session within the specified session host + - `[WorkspaceName ]`: The name of the workspace + +## RELATED LINKS + diff --git a/swaggerci/desktopvirtualization/docs/readme.md b/swaggerci/desktopvirtualization/docs/readme.md new file mode 100644 index 000000000000..21dffddb5593 --- /dev/null +++ b/swaggerci/desktopvirtualization/docs/readme.md @@ -0,0 +1,11 @@ +# Docs +This directory contains the documentation of the cmdlets for the `Az.DesktopVirtualizationApi` module. To run documentation generation, use the `generate-help.ps1` script at the root module folder. Files in this folder will *always be overriden on regeneration*. To update documentation examples, please use the `../examples` folder. + +## Info +- Modifiable: no +- Generated: all +- Committed: yes +- Packaged: yes + +## Details +The process of documentation generation loads `Az.DesktopVirtualizationApi` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `../exports` folder. Additionally, when writing custom cmdlets in the `../custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `../examples` folder. \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/examples/Disconnect-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/examples/Disconnect-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Disconnect-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Expand-AzDesktopVirtualizationApiMsixImage.md b/swaggerci/desktopvirtualization/examples/Expand-AzDesktopVirtualizationApiMsixImage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Expand-AzDesktopVirtualizationApiMsixImage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiDesktop.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiDesktop.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiDesktop.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateLinkResource.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateLinkResource.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiPrivateLinkResource.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiStartMenuItem.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiStartMenuItem.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiStartMenuItem.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateDetail.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateDetail.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateDetail.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateOperationResult.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateOperationResult.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateOperationResult.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Get-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md b/swaggerci/desktopvirtualization/examples/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/New-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiUserSession.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiUserSession.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiUserSession.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Remove-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Send-AzDesktopVirtualizationApiUserSessionMessage.md b/swaggerci/desktopvirtualization/examples/Send-AzDesktopVirtualizationApiUserSessionMessage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Send-AzDesktopVirtualizationApiUserSessionMessage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplication.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplication.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplication.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplicationGroup.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplicationGroup.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiApplicationGroup.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiDesktop.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiDesktop.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiDesktop.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPool.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPool.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPool.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPoolPost.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPoolPost.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiHostPoolPost.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiMsixPackage.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiMsixPackage.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiMsixPackage.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiScalingPlan.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiScalingPlan.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiScalingPlan.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiSessionHost.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiSessionHost.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiSessionHost.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiWorkspace.md b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiWorkspace.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/desktopvirtualization/examples/Update-AzDesktopVirtualizationApiWorkspace.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/desktopvirtualization/export-surface.ps1 b/swaggerci/desktopvirtualization/export-surface.ps1 new file mode 100644 index 000000000000..54fba3587314 --- /dev/null +++ b/swaggerci/desktopvirtualization/export-surface.ps1 @@ -0,0 +1,40 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$IncludeGeneralParameters, [switch]$UseExpandedFormat) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.DesktopVirtualizationApi.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} +$null = Import-Module -Name $dll + +$moduleName = 'Az.DesktopVirtualizationApi' +$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/desktopvirtualization/exports/Disconnect-AzDesktopVirtualizationApiUserSession.ps1 b/swaggerci/desktopvirtualization/exports/Disconnect-AzDesktopVirtualizationApiUserSession.ps1 new file mode 100644 index 000000000000..622988c9e535 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Disconnect-AzDesktopVirtualizationApiUserSession.ps1 @@ -0,0 +1,192 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disconnect a userSession. +.Description +Disconnect a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/disconnect-azdesktopvirtualizationapiusersession +#> +function Disconnect-AzDesktopVirtualizationApiUserSession { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disconnect', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Disconnect')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisconnectViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Disconnect = 'Az.DesktopVirtualizationApi.private\Disconnect-AzDesktopVirtualizationApiUserSession_Disconnect'; + DisconnectViaIdentity = 'Az.DesktopVirtualizationApi.private\Disconnect-AzDesktopVirtualizationApiUserSession_DisconnectViaIdentity'; + } + if (('Disconnect') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Expand-AzDesktopVirtualizationApiMsixImage.ps1 b/swaggerci/desktopvirtualization/exports/Expand-AzDesktopVirtualizationApiMsixImage.ps1 new file mode 100644 index 000000000000..e4d8064cefb1 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Expand-AzDesktopVirtualizationApiMsixImage.ps1 @@ -0,0 +1,199 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Expands and Lists MSIX packages in an Image, given the Image Path. +.Description +Expands and Lists MSIX packages in an Image, given the Image Path. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +MSIXIMAGEURI : Represents URI referring to MSIX Image + [Uri ]: URI to Image +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/expand-azdesktopvirtualizationapimsiximage +#> +function Expand-AzDesktopVirtualizationApiMsixImage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage])] +[CmdletBinding(DefaultParameterSetName='ExpandExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Expand', Mandatory)] + [Parameter(ParameterSetName='ExpandExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Expand', Mandatory)] + [Parameter(ParameterSetName='ExpandExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Expand')] + [Parameter(ParameterSetName='ExpandExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ExpandViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ExpandViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Expand', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ExpandViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri] + # Represents URI referring to MSIX Image + # To construct, see NOTES section for MSIXIMAGEURI properties and create a hash table. + ${MsixImageUri}, + + [Parameter(ParameterSetName='ExpandExpanded')] + [Parameter(ParameterSetName='ExpandViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URI to Image + ${Uri}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Expand = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_Expand'; + ExpandExpanded = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandExpanded'; + ExpandViaIdentity = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandViaIdentity'; + ExpandViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded'; + } + if (('Expand', 'ExpandExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplication.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplication.ps1 new file mode 100644 index 000000000000..1ce87d4f4490 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplication.ps1 @@ -0,0 +1,185 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an application. +.Description +Get an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplication +#> +function Get-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplicationGroup.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplicationGroup.ps1 new file mode 100644 index 000000000000..1adf7d58277b --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiApplicationGroup.ps1 @@ -0,0 +1,187 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an application group. +.Description +Get an application group. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplicationgroup +#> +function Get-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.String] + # OData filter expression. + # Valid properties for filtering are applicationGroupType. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiDesktop.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiDesktop.ps1 new file mode 100644 index 000000000000..be2051d636e3 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiDesktop.ps1 @@ -0,0 +1,184 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a desktop. +.Description +Get a desktop. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapidesktop +#> +function Get-AzDesktopVirtualizationApiDesktop { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DesktopName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the desktop within the specified desktop group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPool.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPool.ps1 new file mode 100644 index 000000000000..664137f0df9c --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPool.ps1 @@ -0,0 +1,179 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a host pool. +.Description +Get a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpool +#> +function Get-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.ps1 new file mode 100644 index 000000000000..fd90558162aa --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiHostPoolRegistrationToken.ps1 @@ -0,0 +1,173 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Registration token of the host pool. +.Description +Registration token of the host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpoolregistrationtoken +#> +function Get-AzDesktopVirtualizationApiHostPoolRegistrationToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo])] +[CmdletBinding(DefaultParameterSetName='Retrieve', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Retrieve', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Retrieve', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Retrieve')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RetrieveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Retrieve = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve'; + RetrieveViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity'; + } + if (('Retrieve') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiMsixPackage.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiMsixPackage.ps1 new file mode 100644 index 000000000000..93cd8ee086c5 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiMsixPackage.ps1 @@ -0,0 +1,184 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a msixpackage. +.Description +Get a msixpackage. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapimsixpackage +#> +function Get-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..701d4da1f9af --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 @@ -0,0 +1,200 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a private endpoint connection. +.Description +Get a private endpoint connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivateendpointconnection +#> +function Get-AzDesktopVirtualizationApiPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the private endpoint connection associated with the Azure resource + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_Get'; + Get1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_Get1'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity'; + GetViaIdentity1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_List1'; + } + if (('Get', 'Get1', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateLinkResource.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateLinkResource.ps1 new file mode 100644 index 000000000000..43c37af34446 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiPrivateLinkResource.ps1 @@ -0,0 +1,151 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the private link resources available for this hostpool. +.Description +List the private link resources available for this hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivatelinkresource +#> +function Get-AzDesktopVirtualizationApiPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateLinkResource_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateLinkResource_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiScalingPlan.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiScalingPlan.ps1 new file mode 100644 index 000000000000..8c26c33ec5f0 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiScalingPlan.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a scaling plan. +.Description +Get a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiscalingplan +#> +function Get-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List2', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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')] + [Parameter(ParameterSetName='List2')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List1'; + List2 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List2'; + } + if (('Get', 'List', 'List1', 'List2') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiSessionHost.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiSessionHost.ps1 new file mode 100644 index 000000000000..7d853a9bd4a5 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiSessionHost.ps1 @@ -0,0 +1,184 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a session host. +.Description +Get a session host. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapisessionhost +#> +function Get-AzDesktopVirtualizationApiSessionHost { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiStartMenuItem.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiStartMenuItem.ps1 new file mode 100644 index 000000000000..e1e0c1a9da66 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiStartMenuItem.ps1 @@ -0,0 +1,144 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List start menu items in the given application group. +.Description +List start menu items in the given application group. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapistartmenuitem +#> +function Get-AzDesktopVirtualizationApiStartMenuItem { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiStartMenuItem_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateDetail.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateDetail.ps1 new file mode 100644 index 000000000000..667362944890 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateDetail.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatedetail +#> +function Get-AzDesktopVirtualizationApiUpdateDetail { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateOperationResult.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateOperationResult.ps1 new file mode 100644 index 000000000000..0e3f5e667b2b --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateOperationResult.ps1 @@ -0,0 +1,185 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdateoperationresult +#> +function Get-AzDesktopVirtualizationApiUpdateOperationResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateOperationResult_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.ps1 new file mode 100644 index 000000000000..cbb8b1ac9537 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUpdateValidationOperationResult.ps1 @@ -0,0 +1,185 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatevalidationoperationresult +#> +function Get-AzDesktopVirtualizationApiUpdateValidationOperationResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateValidationOperationResult_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUserSession.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUserSession.ps1 new file mode 100644 index 000000000000..73b9db893499 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiUserSession.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a userSession. +.Description +Get a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiusersession +#> +function Get-AzDesktopVirtualizationApiUserSession { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.String] + # OData filter expression. + # Valid properties for filtering are userprincipalname and sessionstate. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiWorkspace.ps1 b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiWorkspace.ps1 new file mode 100644 index 000000000000..5c3f17906e06 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Get-AzDesktopVirtualizationApiWorkspace.ps1 @@ -0,0 +1,179 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a workspace. +.Description +Get a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiworkspace +#> +function Get-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.ps1 b/swaggerci/desktopvirtualization/exports/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.ps1 new file mode 100644 index 000000000000..d6e68f440e96 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate.ps1 @@ -0,0 +1,206 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Control update of a hostpool. +.Description +Control update of a hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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. + +HOSTPOOLCONTROLPARAMETER : Represents properties for a hostpool update. + [Action ]: Action types for controlling hostpool update. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/invoke-azdesktopvirtualizationapicontrolhostpoolupdate +#> +function Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='ControlExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Control', Mandatory)] + [Parameter(ParameterSetName='ControlExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Control', Mandatory)] + [Parameter(ParameterSetName='ControlExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Control')] + [Parameter(ParameterSetName='ControlExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ControlViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ControlViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Control', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ControlViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter] + # Represents properties for a hostpool update. + # To construct, see NOTES section for HOSTPOOLCONTROLPARAMETER properties and create a hash table. + ${HostPoolControlParameter}, + + [Parameter(ParameterSetName='ControlExpanded')] + [Parameter(ParameterSetName='ControlViaIdentityExpanded')] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction] + # Action types for controlling hostpool update. + ${Action}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Control = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_Control'; + ControlExpanded = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded'; + ControlViaIdentity = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity'; + ControlViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded'; + } + if (('Control', 'ControlExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplication.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplication.ps1 new file mode 100644 index 000000000000..0b545b445543 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplication.ps1 @@ -0,0 +1,220 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update an application. +.Description +Create or update an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplication +#> +function New-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting] + # Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + ${CommandLineSetting}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType] + # Resource Type of Application. + ${ApplicationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Command Line Arguments for Application. + ${CommandLineArgument}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Application. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies a path for the executable file for the application. + ${FilePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Application. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Index of the icon. + ${IconIndex}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to icon. + ${IconPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package application Id for MSIX applications + ${MsixPackageApplicationId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package family name for MSIX applications + ${MsixPackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies whether to show the RemoteApp program in the RD Web Access server. + ${ShowInPortal}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiApplication_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplicationGroup.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplicationGroup.ps1 new file mode 100644 index 000000000000..e146ac9ea040 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiApplicationGroup.ps1 @@ -0,0 +1,289 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update an applicationGroup. +.Description +Create or update an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplicationgroup +#> +function New-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType] + # Resource Type of ApplicationGroup. + ${ApplicationGroupType}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # HostPool arm path of ApplicationGroup. + ${HostPoolArmPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of ApplicationGroup. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of ApplicationGroup. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The path to the legacy object to migrate. + ${MigrationRequestMigrationPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation] + # The type of operation for migration. + ${MigrationRequestOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiApplicationGroup_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiHostPool.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiHostPool.ps1 new file mode 100644 index 000000000000..f5e587a811c1 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiHostPool.ps1 @@ -0,0 +1,470 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a host pool. +.Description +Create or update a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + [DiskType ]: The disk type used by virtual machine in hostpool session host. + [DomainAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [DomainAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [DomainAdminUserName ]: The user name to the account. + [DomainInfoJoinType ]: The type of domain join done by the virtual machine. + [DomainInfoMdmProviderGuid ]: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + [DomainInfoName ]: The domain a virtual machine connected to a hostpool will join. + [ImageInfoCustomId ]: The resource id of the custom image or shared image. Image type must be CustomImage. + [ImageInfoStorageBlobUri ]: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + [ImageInfoType ]: The type of image session hosts use in the hostpool. + [LocalAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [LocalAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [LocalAdminUserName ]: The user name to the account. + [MarketPlaceInfoExactVersion ]: The exact version of the image. + [MarketPlaceInfoOffer ]: The offer of the image. + [MarketPlaceInfoPublisher ]: The publisher of the image. + [MarketPlaceInfoSku ]: The sku of the image. + [VMCustomConfigurationUri ]: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + [VMSizeId ]: The id of the size of a virtual machine connected to a hostpool. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapihostpool +#> +function New-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType] + # The type of the load balancer. + ${LoadBalancerType}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType] + # The type of preferred application group type, default to Desktop Application Group + ${PreferredAppGroupType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Custom rdp property of HostPool. + ${CustomRdpProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of HostPool. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of HostPool. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The max session limit of HostPool. + ${MaxSessionLimit}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The path to the legacy object to migrate. + ${MigrationRequestMigrationPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation] + # The type of operation for migration. + ${MigrationRequestOperation}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType] + # PersonalDesktopAssignment type for HostPool. + ${PersonalDesktopAssignmentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek] + # Day of the week. + ${PrimaryWindowDayOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${PrimaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Expiration time of registration token. + ${RegistrationInfoExpirationTime}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation] + # The type of resetting the token. + ${RegistrationInfoRegistrationTokenOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The registration token base64 encoded string. + ${RegistrationInfoToken}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The ring number of HostPool. + ${Ring}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # Set of days of the week on which this schedule is active. + ${SecondaryWindowDaysOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${SecondaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType] + # The type of maintenance for session host components. + ${SessionHostComponentUpdateConfigurationMaintenanceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to use localTime of the virtual machine. + ${SessionHostComponentUpdateConfigurationUseSessionHostLocalTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties] + # The session host configurations of HostPool. + # To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + ${SessionHostConfiguration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # ClientId for the registered Relying Party used to issue WVD SSO certificates. + ${SsoClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to Azure KeyVault storing the secret used for communication to ADFS. + ${SsoClientSecretKeyVaultPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType] + # The type of single sign on Secret Type. + ${SsoSecretType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URL to customer ADFS server for signing WVD SSO certificates. + ${SsoadfsAuthority}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # The flag to turn on/off StartVMOnConnect feature. + ${StartVMOnConnect}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VM template for sessionhosts configuration within hostpool. + ${VMTemplate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Is validation environment. + ${ValidationEnvironment}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiHostPool_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiMsixPackage.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiMsixPackage.ps1 new file mode 100644 index 000000000000..b46dd84472bc --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiMsixPackage.ps1 @@ -0,0 +1,240 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a MSIX package. +.Description +Create or update a MSIX package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PACKAGEAPPLICATION : List of package applications. + [AppId ]: Package Application Id, found in appxmanifest.xml. + [AppUserModelId ]: Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + [Description ]: Description of Package Application. + [FriendlyName ]: User friendly name. + [IconImageName ]: User friendly name. + [RawIcon ]: the icon a 64 bit string as a byte array. + [RawPng ]: the icon a 64 bit string as a byte array. + +PACKAGEDEPENDENCY : List of package dependencies. + [DependencyName ]: Name of package dependency. + [MinVersion ]: Dependency version required. + [Publisher ]: Name of dependency publisher. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapimsixpackage +#> +function New-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly Name to be displayed in the portal. + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VHD/CIM image path on Network Share. + ${ImagePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Make this version of the package the active one across the hostpool. + ${IsActive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies how to register Package in feed. + ${IsRegularRegistration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Date Package was last updated, found in the appxmanifest.xml. + ${LastUpdated}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]] + # List of package applications. + # + # To construct, see NOTES section for PACKAGEAPPLICATION properties and create a hash table. + ${PackageApplication}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]] + # List of package dependencies. + # + # To construct, see NOTES section for PACKAGEDEPENDENCY properties and create a hash table. + ${PackageDependency}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Family Name from appxmanifest.xml. + # Contains Package Name and Publisher name. + ${PackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Name from appxmanifest.xml. + ${PackageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Relative Path to the package inside the image. + ${PackageRelativePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Version found in the appxmanifest.xml. + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiMsixPackage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiScalingPlan.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiScalingPlan.ps1 new file mode 100644 index 000000000000..8fe5fdad4766 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiScalingPlan.ps1 @@ -0,0 +1,324 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a scaling plan. +.Description +Create or update a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + [HostPoolArmPath ]: Arm path of referenced hostpool. + [ScalingPlanEnabled ]: Is the scaling plan enabled for this hostpool. + +SCHEDULE : List of ScalingSchedule definitions. + [DaysOfWeek ]: Set of days of the week on which this schedule is active. + [Name ]: Name of the scaling schedule. + [OffPeakLoadBalancingAlgorithm ]: Load balancing algorithm for off-peak period. + [OffPeakStartTime ]: Starting time for off-peak period. + [PeakLoadBalancingAlgorithm ]: Load balancing algorithm for peak period. + [PeakStartTime ]: Starting time for peak period. + [RampDownCapacityThresholdPct ]: Capacity threshold for ramp down period. + [RampDownForceLogoffUser ]: Should users be logged off forcefully from hosts. + [RampDownLoadBalancingAlgorithm ]: Load balancing algorithm for ramp down period. + [RampDownMinimumHostsPct ]: Minimum host percentage for ramp down period. + [RampDownNotificationMessage ]: Notification message for users during ramp down period. + [RampDownStartTime ]: Starting time for ramp down period. + [RampDownStopHostsWhen ]: Specifies when to stop hosts during ramp down period. + [RampDownWaitTimeMinute ]: Number of minutes to wait to stop hosts during ramp down period. + [RampUpCapacityThresholdPct ]: Capacity threshold for ramp up period. + [RampUpLoadBalancingAlgorithm ]: Load balancing algorithm for ramp up period. + [RampUpMinimumHostsPct ]: Minimum host percentage for ramp up period. + [RampUpStartTime ]: Starting time for ramp up period. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiscalingplan +#> +function New-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of scaling plan. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Exclusion tag for scaling plan. + ${ExclusionTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly name of scaling plan. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]] + # List of ScalingHostPoolReference definitions. + # To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + ${HostPoolReference}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]] + # List of ScalingSchedule definitions. + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Timezone of the scaling plan. + ${TimeZone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiScalingPlan_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiWorkspace.ps1 b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiWorkspace.ps1 new file mode 100644 index 000000000000..00ef110858a1 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/New-AzDesktopVirtualizationApiWorkspace.ps1 @@ -0,0 +1,276 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a workspace. +.Description +Create or update a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiworkspace +#> +function New-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # List of applicationGroup resource Ids. + ${ApplicationGroupReference}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Workspace. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Workspace. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiWorkspace_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/desktopvirtualization/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..3fda72139c55 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,9323 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disconnect a userSession. +.Description +Disconnect a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/disconnect-azdesktopvirtualizationapiusersession +#> +function Disconnect-AzDesktopVirtualizationApiUserSession { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disconnect', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disconnect', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Disconnect')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisconnectViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Disconnect = 'Az.DesktopVirtualizationApi.private\Disconnect-AzDesktopVirtualizationApiUserSession_Disconnect'; + DisconnectViaIdentity = 'Az.DesktopVirtualizationApi.private\Disconnect-AzDesktopVirtualizationApiUserSession_DisconnectViaIdentity'; + } + if (('Disconnect') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Expands and Lists MSIX packages in an Image, given the Image Path. +.Description +Expands and Lists MSIX packages in an Image, given the Image Path. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +MSIXIMAGEURI : Represents URI referring to MSIX Image + [Uri ]: URI to Image +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/expand-azdesktopvirtualizationapimsiximage +#> +function Expand-AzDesktopVirtualizationApiMsixImage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage])] +[CmdletBinding(DefaultParameterSetName='ExpandExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Expand', Mandatory)] + [Parameter(ParameterSetName='ExpandExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Expand', Mandatory)] + [Parameter(ParameterSetName='ExpandExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Expand')] + [Parameter(ParameterSetName='ExpandExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ExpandViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ExpandViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Expand', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ExpandViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri] + # Represents URI referring to MSIX Image + # To construct, see NOTES section for MSIXIMAGEURI properties and create a hash table. + ${MsixImageUri}, + + [Parameter(ParameterSetName='ExpandExpanded')] + [Parameter(ParameterSetName='ExpandViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URI to Image + ${Uri}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Expand = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_Expand'; + ExpandExpanded = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandExpanded'; + ExpandViaIdentity = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandViaIdentity'; + ExpandViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Expand-AzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded'; + } + if (('Expand', 'ExpandExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an application group. +.Description +Get an application group. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplicationgroup +#> +function Get-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.String] + # OData filter expression. + # Valid properties for filtering are applicationGroupType. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplicationGroup_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an application. +.Description +Get an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiapplication +#> +function Get-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiApplication_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a desktop. +.Description +Get a desktop. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapidesktop +#> +function Get-AzDesktopVirtualizationApiDesktop { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DesktopName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the desktop within the specified desktop group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiDesktop_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Registration token of the host pool. +.Description +Registration token of the host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpoolregistrationtoken +#> +function Get-AzDesktopVirtualizationApiHostPoolRegistrationToken { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo])] +[CmdletBinding(DefaultParameterSetName='Retrieve', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Retrieve', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Retrieve', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Retrieve')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RetrieveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Retrieve = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve'; + RetrieveViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity'; + } + if (('Retrieve') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a host pool. +.Description +Get a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapihostpool +#> +function Get-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiHostPool_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a msixpackage. +.Description +Get a msixpackage. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapimsixpackage +#> +function Get-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiMsixPackage_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a private endpoint connection. +.Description +Get a private endpoint connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivateendpointconnection +#> +function Get-AzDesktopVirtualizationApiPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the private endpoint connection associated with the Azure resource + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_Get'; + Get1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_Get1'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity'; + GetViaIdentity1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateEndpointConnection_List1'; + } + if (('Get', 'Get1', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the private link resources available for this hostpool. +.Description +List the private link resources available for this hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiprivatelinkresource +#> +function Get-AzDesktopVirtualizationApiPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateLinkResource_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiPrivateLinkResource_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a scaling plan. +.Description +Get a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiscalingplan +#> +function Get-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List2', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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')] + [Parameter(ParameterSetName='List2')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List1'; + List2 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiScalingPlan_List2'; + } + if (('Get', 'List', 'List1', 'List2') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a session host. +.Description +Get a session host. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapisessionhost +#> +function Get-AzDesktopVirtualizationApiSessionHost { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiSessionHost_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List start menu items in the given application group. +.Description +List start menu items in the given application group. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapistartmenuitem +#> +function Get-AzDesktopVirtualizationApiStartMenuItem { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiStartMenuItem_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatedetail +#> +function Get-AzDesktopVirtualizationApiUpdateDetail { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateDetail_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdateoperationresult +#> +function Get-AzDesktopVirtualizationApiUpdateOperationResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateOperationResult_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation status of a validate hostpool update. +.Description +Operation status of a validate hostpool update. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiupdatevalidationoperationresult +#> +function Get-AzDesktopVirtualizationApiUpdateValidationOperationResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateValidationOperationResult_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a userSession. +.Description +Get a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiusersession +#> +function Get-AzDesktopVirtualizationApiUserSession { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.String] + # OData filter expression. + # Valid properties for filtering are userprincipalname and sessionstate. + ${Filter}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiUserSession_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a workspace. +.Description +Get a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/get-azdesktopvirtualizationapiworkspace +#> +function Get-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_Get'; + GetViaIdentity = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_GetViaIdentity'; + List = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_List'; + List1 = 'Az.DesktopVirtualizationApi.private\Get-AzDesktopVirtualizationApiWorkspace_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Control update of a hostpool. +.Description +Control update of a hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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. + +HOSTPOOLCONTROLPARAMETER : Represents properties for a hostpool update. + [Action ]: Action types for controlling hostpool update. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/invoke-azdesktopvirtualizationapicontrolhostpoolupdate +#> +function Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='ControlExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Control', Mandatory)] + [Parameter(ParameterSetName='ControlExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Control', Mandatory)] + [Parameter(ParameterSetName='ControlExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Control')] + [Parameter(ParameterSetName='ControlExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ControlViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ControlViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Control', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ControlViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter] + # Represents properties for a hostpool update. + # To construct, see NOTES section for HOSTPOOLCONTROLPARAMETER properties and create a hash table. + ${HostPoolControlParameter}, + + [Parameter(ParameterSetName='ControlExpanded')] + [Parameter(ParameterSetName='ControlViaIdentityExpanded')] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction] + # Action types for controlling hostpool update. + ${Action}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Control = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_Control'; + ControlExpanded = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded'; + ControlViaIdentity = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity'; + ControlViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Invoke-AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded'; + } + if (('Control', 'ControlExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update an applicationGroup. +.Description +Create or update an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplicationgroup +#> +function New-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType] + # Resource Type of ApplicationGroup. + ${ApplicationGroupType}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # HostPool arm path of ApplicationGroup. + ${HostPoolArmPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of ApplicationGroup. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of ApplicationGroup. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The path to the legacy object to migrate. + ${MigrationRequestMigrationPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation] + # The type of operation for migration. + ${MigrationRequestOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiApplicationGroup_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update an application. +.Description +Create or update an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiapplication +#> +function New-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting] + # Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + ${CommandLineSetting}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType] + # Resource Type of Application. + ${ApplicationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Command Line Arguments for Application. + ${CommandLineArgument}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Application. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies a path for the executable file for the application. + ${FilePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Application. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Index of the icon. + ${IconIndex}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to icon. + ${IconPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package application Id for MSIX applications + ${MsixPackageApplicationId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package family name for MSIX applications + ${MsixPackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies whether to show the RemoteApp program in the RD Web Access server. + ${ShowInPortal}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiApplication_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a host pool. +.Description +Create or update a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + [DiskType ]: The disk type used by virtual machine in hostpool session host. + [DomainAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [DomainAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [DomainAdminUserName ]: The user name to the account. + [DomainInfoJoinType ]: The type of domain join done by the virtual machine. + [DomainInfoMdmProviderGuid ]: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + [DomainInfoName ]: The domain a virtual machine connected to a hostpool will join. + [ImageInfoCustomId ]: The resource id of the custom image or shared image. Image type must be CustomImage. + [ImageInfoStorageBlobUri ]: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + [ImageInfoType ]: The type of image session hosts use in the hostpool. + [LocalAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [LocalAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [LocalAdminUserName ]: The user name to the account. + [MarketPlaceInfoExactVersion ]: The exact version of the image. + [MarketPlaceInfoOffer ]: The offer of the image. + [MarketPlaceInfoPublisher ]: The publisher of the image. + [MarketPlaceInfoSku ]: The sku of the image. + [VMCustomConfigurationUri ]: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + [VMSizeId ]: The id of the size of a virtual machine connected to a hostpool. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapihostpool +#> +function New-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType] + # The type of the load balancer. + ${LoadBalancerType}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType] + # The type of preferred application group type, default to Desktop Application Group + ${PreferredAppGroupType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Custom rdp property of HostPool. + ${CustomRdpProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of HostPool. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of HostPool. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The max session limit of HostPool. + ${MaxSessionLimit}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The path to the legacy object to migrate. + ${MigrationRequestMigrationPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation] + # The type of operation for migration. + ${MigrationRequestOperation}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType] + # PersonalDesktopAssignment type for HostPool. + ${PersonalDesktopAssignmentType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek] + # Day of the week. + ${PrimaryWindowDayOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${PrimaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Expiration time of registration token. + ${RegistrationInfoExpirationTime}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation] + # The type of resetting the token. + ${RegistrationInfoRegistrationTokenOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The registration token base64 encoded string. + ${RegistrationInfoToken}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The ring number of HostPool. + ${Ring}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # Set of days of the week on which this schedule is active. + ${SecondaryWindowDaysOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${SecondaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType] + # The type of maintenance for session host components. + ${SessionHostComponentUpdateConfigurationMaintenanceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to use localTime of the virtual machine. + ${SessionHostComponentUpdateConfigurationUseSessionHostLocalTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties] + # The session host configurations of HostPool. + # To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + ${SessionHostConfiguration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # ClientId for the registered Relying Party used to issue WVD SSO certificates. + ${SsoClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to Azure KeyVault storing the secret used for communication to ADFS. + ${SsoClientSecretKeyVaultPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType] + # The type of single sign on Secret Type. + ${SsoSecretType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URL to customer ADFS server for signing WVD SSO certificates. + ${SsoadfsAuthority}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # The flag to turn on/off StartVMOnConnect feature. + ${StartVMOnConnect}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VM template for sessionhosts configuration within hostpool. + ${VMTemplate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Is validation environment. + ${ValidationEnvironment}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiHostPool_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a MSIX package. +.Description +Create or update a MSIX package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PACKAGEAPPLICATION : List of package applications. + [AppId ]: Package Application Id, found in appxmanifest.xml. + [AppUserModelId ]: Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + [Description ]: Description of Package Application. + [FriendlyName ]: User friendly name. + [IconImageName ]: User friendly name. + [RawIcon ]: the icon a 64 bit string as a byte array. + [RawPng ]: the icon a 64 bit string as a byte array. + +PACKAGEDEPENDENCY : List of package dependencies. + [DependencyName ]: Name of package dependency. + [MinVersion ]: Dependency version required. + [Publisher ]: Name of dependency publisher. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapimsixpackage +#> +function New-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly Name to be displayed in the portal. + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VHD/CIM image path on Network Share. + ${ImagePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Make this version of the package the active one across the hostpool. + ${IsActive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies how to register Package in feed. + ${IsRegularRegistration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Date Package was last updated, found in the appxmanifest.xml. + ${LastUpdated}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]] + # List of package applications. + # + # To construct, see NOTES section for PACKAGEAPPLICATION properties and create a hash table. + ${PackageApplication}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]] + # List of package dependencies. + # + # To construct, see NOTES section for PACKAGEDEPENDENCY properties and create a hash table. + ${PackageDependency}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Family Name from appxmanifest.xml. + # Contains Package Name and Publisher name. + ${PackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Name from appxmanifest.xml. + ${PackageName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Relative Path to the package inside the image. + ${PackageRelativePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Package Version found in the appxmanifest.xml. + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiMsixPackage_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a scaling plan. +.Description +Create or update a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + [HostPoolArmPath ]: Arm path of referenced hostpool. + [ScalingPlanEnabled ]: Is the scaling plan enabled for this hostpool. + +SCHEDULE : List of ScalingSchedule definitions. + [DaysOfWeek ]: Set of days of the week on which this schedule is active. + [Name ]: Name of the scaling schedule. + [OffPeakLoadBalancingAlgorithm ]: Load balancing algorithm for off-peak period. + [OffPeakStartTime ]: Starting time for off-peak period. + [PeakLoadBalancingAlgorithm ]: Load balancing algorithm for peak period. + [PeakStartTime ]: Starting time for peak period. + [RampDownCapacityThresholdPct ]: Capacity threshold for ramp down period. + [RampDownForceLogoffUser ]: Should users be logged off forcefully from hosts. + [RampDownLoadBalancingAlgorithm ]: Load balancing algorithm for ramp down period. + [RampDownMinimumHostsPct ]: Minimum host percentage for ramp down period. + [RampDownNotificationMessage ]: Notification message for users during ramp down period. + [RampDownStartTime ]: Starting time for ramp down period. + [RampDownStopHostsWhen ]: Specifies when to stop hosts during ramp down period. + [RampDownWaitTimeMinute ]: Number of minutes to wait to stop hosts during ramp down period. + [RampUpCapacityThresholdPct ]: Capacity threshold for ramp up period. + [RampUpLoadBalancingAlgorithm ]: Load balancing algorithm for ramp up period. + [RampUpMinimumHostsPct ]: Minimum host percentage for ramp up period. + [RampUpStartTime ]: Starting time for ramp up period. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiscalingplan +#> +function New-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of scaling plan. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Exclusion tag for scaling plan. + ${ExclusionTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly name of scaling plan. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]] + # List of ScalingHostPoolReference definitions. + # To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + ${HostPoolReference}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]] + # List of ScalingSchedule definitions. + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Timezone of the scaling plan. + ${TimeZone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiScalingPlan_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a workspace. +.Description +Create or update a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/new-azdesktopvirtualizationapiworkspace +#> +function New-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # List of applicationGroup resource Ids. + ${ApplicationGroupReference}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Workspace. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Workspace. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType] + # The identity type. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. + # ApiApps are a kind of Microsoft.Web/sites type. + # If supported, the resource provider must validate and persist this value. + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The fully qualified resource ID of the resource that manages this resource. + # Indicates if this resource is managed by another Azure resource. + # If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. + ${ManagedBy}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A user defined name of the 3rd Party Artifact that is being procured. + ${PlanName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + # E.g. + # NewRelic. + # Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. + ${PlanProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + ${PlanPromotionCode}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The publisher of the 3rd Party Artifact that is being bought. + # E.g. + # NewRelic + ${PlanPublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The version of the desired product/artifact. + ${PlanVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # If the SKU supports scale out/in then the capacity integer should be included. + # If scale out/in is not possible for the resource this may be omitted. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # If the service has different generations of hardware, for the same SKU, then that can be captured here. + ${SkuFamily}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The name of the SKU. + # Ex - P3. + # It is typically a letter+number code + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # The SKU size. + # When the name field is the combination of tier and some other value, this would be the standalone code. + ${SkuSize}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier] + # This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.DesktopVirtualizationApi.private\New-AzDesktopVirtualizationApiWorkspace_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an applicationGroup. +.Description +Remove an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplicationgroup +#> +function Remove-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplicationGroup_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an application. +.Description +Remove an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplication +#> +function Remove-AzDesktopVirtualizationApiApplication { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplication_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplication_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a host pool. +.Description +Remove a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapihostpool +#> +function Remove-AzDesktopVirtualizationApiHostPool { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to delete sessionHost. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiHostPool_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiHostPool_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an MSIX Package. +.Description +Remove an MSIX Package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapimsixpackage +#> +function Remove-AzDesktopVirtualizationApiMsixPackage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiMsixPackage_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a connection. +.Description +Remove a connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiprivateendpointconnection +#> +function Remove-AzDesktopVirtualizationApiPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the private endpoint connection associated with the Azure resource + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Parameter(ParameterSetName='Delete1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DeleteViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_Delete'; + Delete1 = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_Delete1'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity'; + DeleteViaIdentity1 = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1'; + } + if (('Delete', 'Delete1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a scaling plan. +.Description +Remove a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiscalingplan +#> +function Remove-AzDesktopVirtualizationApiScalingPlan { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiScalingPlan_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a SessionHost. +.Description +Remove a SessionHost. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapisessionhost +#> +function Remove-AzDesktopVirtualizationApiSessionHost { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to force sessionHost deletion even when userSession exists. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiSessionHost_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiSessionHost_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a userSession. +.Description +Remove a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiusersession +#> +function Remove-AzDesktopVirtualizationApiUserSession { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to login off userSession. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiUserSession_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiUserSession_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a workspace. +.Description +Remove a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiworkspace +#> +function Remove-AzDesktopVirtualizationApiWorkspace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiWorkspace_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiWorkspace_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Send a message to a user. +.Description +Send a message to a user. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SENDMESSAGE : Represents message sent to a UserSession. + [MessageBody ]: Body of message. + [MessageTitle ]: Title of message. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/send-azdesktopvirtualizationapiusersessionmessage +#> +function Send-AzDesktopVirtualizationApiUserSessionMessage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SendExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Send')] + [Parameter(ParameterSetName='SendExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${UserSessionId}, + + [Parameter(ParameterSetName='SendViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SendViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Send', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SendViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage] + # Represents message sent to a UserSession. + # To construct, see NOTES section for SENDMESSAGE properties and create a hash table. + ${SendMessage}, + + [Parameter(ParameterSetName='SendExpanded')] + [Parameter(ParameterSetName='SendViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Body of message. + ${MessageBody}, + + [Parameter(ParameterSetName='SendExpanded')] + [Parameter(ParameterSetName='SendViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Title of message. + ${MessageTitle}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Send = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_Send'; + SendExpanded = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendExpanded'; + SendViaIdentity = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity'; + SendViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded'; + } + if (('Send', 'SendExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an applicationGroup. +.Description +Update an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplicationgroup +#> +function Update-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of ApplicationGroup. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of ApplicationGroup. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplicationGroup_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an application. +.Description +Update an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplication +#> +function Update-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType] + # Resource Type of Application. + ${ApplicationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Command Line Arguments for Application. + ${CommandLineArgument}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting] + # Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + ${CommandLineSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Application. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies a path for the executable file for the application. + ${FilePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Application. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Index of the icon. + ${IconIndex}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to icon. + ${IconPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package application Id for MSIX applications + ${MsixPackageApplicationId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package family name for MSIX applications + ${MsixPackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies whether to show the RemoteApp program in the RD Web Access server. + ${ShowInPortal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplication_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a desktop. +.Description +Update a desktop. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapidesktop +#> +function Update-AzDesktopVirtualizationApiDesktop { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DesktopName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the desktop within the specified desktop group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Desktop. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Desktop. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiDesktop_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Initiate update of a hostpool. +.Description +Initiate update of a hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +PARAMETERMAINTENANCEALERT : The alerts given to customers for hostpool update. + [BeforeKickOff ]: Whether to send maintenance alert after or before hostpool update. False by default. + [Duration ]: The duration of the hostpool update in seconds. + [Message ]: The path to the legacy object to migrate. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpoolpost +#> +function Update-AzDesktopVirtualizationApiHostPoolPost { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Grace period before logging off users in seconds. + ${ParameterLogOffDelaySecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Log off message sent to user for logoff. + ${ParameterLogOffMessage}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]] + # The alerts given to customers for hostpool update. + # To construct, see NOTES section for PARAMETERMAINTENANCEALERT properties and create a hash table. + ${ParameterMaintenanceAlert}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The maximum virtual machines to be removed during hostpool update. + ${ParameterMaxVmsRemovedDuringUpdate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to save original disk. + # False by default. + ${ParameterSaveOriginalDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # The time the hostpool update is schedule for. + ${ScheduledTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${ScheduledTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + ${ValidateOnly}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPoolPost_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a host pool. +.Description +Update a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + [DiskType ]: The disk type used by virtual machine in hostpool session host. + [DomainAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [DomainAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [DomainAdminUserName ]: The user name to the account. + [DomainInfoJoinType ]: The type of domain join done by the virtual machine. + [DomainInfoMdmProviderGuid ]: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + [DomainInfoName ]: The domain a virtual machine connected to a hostpool will join. + [ImageInfoCustomId ]: The resource id of the custom image or shared image. Image type must be CustomImage. + [ImageInfoStorageBlobUri ]: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + [ImageInfoType ]: The type of image session hosts use in the hostpool. + [LocalAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [LocalAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [LocalAdminUserName ]: The user name to the account. + [MarketPlaceInfoExactVersion ]: The exact version of the image. + [MarketPlaceInfoOffer ]: The offer of the image. + [MarketPlaceInfoPublisher ]: The publisher of the image. + [MarketPlaceInfoSku ]: The sku of the image. + [VMCustomConfigurationUri ]: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + [VMSizeId ]: The id of the size of a virtual machine connected to a hostpool. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpool +#> +function Update-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Custom rdp property of HostPool. + ${CustomRdpProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of HostPool. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of HostPool. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType] + # The type of the load balancer. + ${LoadBalancerType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The max session limit of HostPool. + ${MaxSessionLimit}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType] + # PersonalDesktopAssignment type for HostPool. + ${PersonalDesktopAssignmentType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType] + # The type of preferred application group type, default to Desktop Application Group + ${PreferredAppGroupType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek] + # Day of the week. + ${PrimaryWindowDayOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${PrimaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled to allow this resource to be access from the public network + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Expiration time of registration token. + ${RegistrationInfoExpirationTime}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation] + # The type of resetting the token. + ${RegistrationInfoRegistrationTokenOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The ring number of HostPool. + ${Ring}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # Set of days of the week on which this schedule is active. + ${SecondaryWindowDaysOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${SecondaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType] + # The type of maintenance for session host components. + ${SessionHostComponentUpdateConfigurationMaintenanceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to use localTime of the virtual machine. + ${SessionHostComponentUpdateConfigurationUseSessionHostLocalTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties] + # The session host configurations of HostPool. + # To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + ${SessionHostConfiguration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # ClientId for the registered Relying Party used to issue WVD SSO certificates. + ${SsoClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to Azure KeyVault storing the secret used for communication to ADFS. + ${SsoClientSecretKeyVaultPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType] + # The type of single sign on Secret Type. + ${SsoSecretType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URL to customer ADFS server for signing WVD SSO certificates. + ${SsoadfsAuthority}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # The flag to turn on/off StartVMOnConnect feature. + ${StartVMOnConnect}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VM template for sessionhosts configuration within hostpool. + ${VMTemplate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Is validation environment. + ${ValidationEnvironment}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPool_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an MSIX Package. +.Description +Update an MSIX Package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapimsixpackage +#> +function Update-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Display name for MSIX Package. + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Set a version of the package to be active across hostpool. + ${IsActive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Set Registration mode. + # Regular or Delayed. + ${IsRegularRegistration}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiMsixPackage_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a scaling plan. +.Description +Update a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + [HostPoolArmPath ]: Arm path of referenced hostpool. + [ScalingPlanEnabled ]: Is the scaling plan enabled for this hostpool. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SCHEDULE : List of ScalingSchedule definitions. + [DaysOfWeek ]: Set of days of the week on which this schedule is active. + [Name ]: Name of the scaling schedule. + [OffPeakLoadBalancingAlgorithm ]: Load balancing algorithm for off-peak period. + [OffPeakStartTime ]: Starting time for off-peak period. + [PeakLoadBalancingAlgorithm ]: Load balancing algorithm for peak period. + [PeakStartTime ]: Starting time for peak period. + [RampDownCapacityThresholdPct ]: Capacity threshold for ramp down period. + [RampDownForceLogoffUser ]: Should users be logged off forcefully from hosts. + [RampDownLoadBalancingAlgorithm ]: Load balancing algorithm for ramp down period. + [RampDownMinimumHostsPct ]: Minimum host percentage for ramp down period. + [RampDownNotificationMessage ]: Notification message for users during ramp down period. + [RampDownStartTime ]: Starting time for ramp down period. + [RampDownStopHostsWhen ]: Specifies when to stop hosts during ramp down period. + [RampDownWaitTimeMinute ]: Number of minutes to wait to stop hosts during ramp down period. + [RampUpCapacityThresholdPct ]: Capacity threshold for ramp up period. + [RampUpLoadBalancingAlgorithm ]: Load balancing algorithm for ramp up period. + [RampUpMinimumHostsPct ]: Minimum host percentage for ramp up period. + [RampUpStartTime ]: Starting time for ramp up period. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiscalingplan +#> +function Update-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of scaling plan. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Exclusion tag for scaling plan. + ${ExclusionTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly name of scaling plan. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]] + # List of ScalingHostPoolReference definitions. + # To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + ${HostPoolReference}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]] + # List of ScalingSchedule definitions. + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Timezone of the scaling plan. + ${TimeZone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiScalingPlan_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a session host. +.Description +Update a session host. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapisessionhost +#> +function Update-AzDesktopVirtualizationApiSessionHost { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allow a new session. + ${AllowNewSession}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User assigned to SessionHost. + ${AssignedUser}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiSessionHost_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a workspace. +.Description +Update a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiworkspace +#> +function Update-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # List of applicationGroup links. + ${ApplicationGroupReference}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Workspace. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Workspace. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled to allow this resource to be access from the public network + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiWorkspace_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplication.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplication.ps1 new file mode 100644 index 000000000000..d7b882017dd0 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplication.ps1 @@ -0,0 +1,187 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an application. +.Description +Remove an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplication +#> +function Remove-AzDesktopVirtualizationApiApplication { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplication_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplication_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplicationGroup.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplicationGroup.ps1 new file mode 100644 index 000000000000..e8701dddaf61 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiApplicationGroup.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an applicationGroup. +.Description +Remove an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiapplicationgroup +#> +function Remove-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplicationGroup_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiHostPool.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiHostPool.ps1 new file mode 100644 index 000000000000..44051bd6383f --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiHostPool.ps1 @@ -0,0 +1,186 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a host pool. +.Description +Remove a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapihostpool +#> +function Remove-AzDesktopVirtualizationApiHostPool { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to delete sessionHost. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiHostPool_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiHostPool_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiMsixPackage.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiMsixPackage.ps1 new file mode 100644 index 000000000000..36f913fb02a6 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiMsixPackage.ps1 @@ -0,0 +1,186 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove an MSIX Package. +.Description +Remove an MSIX Package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapimsixpackage +#> +function Remove-AzDesktopVirtualizationApiMsixPackage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiMsixPackage_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..aaf6e16a5b43 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiPrivateEndpointConnection.ps1 @@ -0,0 +1,198 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a connection. +.Description +Remove a connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiprivateendpointconnection +#> +function Remove-AzDesktopVirtualizationApiPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the private endpoint connection associated with the Azure resource + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Parameter(ParameterSetName='Delete1')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${WorkspaceName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DeleteViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_Delete'; + Delete1 = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_Delete1'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity'; + DeleteViaIdentity1 = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1'; + } + if (('Delete', 'Delete1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiScalingPlan.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiScalingPlan.ps1 new file mode 100644 index 000000000000..3aecc31792ea --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiScalingPlan.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a scaling plan. +.Description +Remove a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiscalingplan +#> +function Remove-AzDesktopVirtualizationApiScalingPlan { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiScalingPlan_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiSessionHost.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiSessionHost.ps1 new file mode 100644 index 000000000000..5a319ccb0667 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiSessionHost.ps1 @@ -0,0 +1,192 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a SessionHost. +.Description +Remove a SessionHost. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapisessionhost +#> +function Remove-AzDesktopVirtualizationApiSessionHost { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to force sessionHost deletion even when userSession exists. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiSessionHost_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiSessionHost_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiUserSession.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiUserSession.ps1 new file mode 100644 index 000000000000..f7d5b4bf7ea9 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiUserSession.ps1 @@ -0,0 +1,198 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a userSession. +.Description +Remove a userSession. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiusersession +#> +function Remove-AzDesktopVirtualizationApiUserSession { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('UserSessionId')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${Id}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Force flag to login off userSession. + ${Force}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiUserSession_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiUserSession_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiWorkspace.ps1 b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiWorkspace.ps1 new file mode 100644 index 000000000000..374da6b3cdec --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Remove-AzDesktopVirtualizationApiWorkspace.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a workspace. +.Description +Remove a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/remove-azdesktopvirtualizationapiworkspace +#> +function Remove-AzDesktopVirtualizationApiWorkspace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiWorkspace_Delete'; + DeleteViaIdentity = 'Az.DesktopVirtualizationApi.private\Remove-AzDesktopVirtualizationApiWorkspace_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Send-AzDesktopVirtualizationApiUserSessionMessage.ps1 b/swaggerci/desktopvirtualization/exports/Send-AzDesktopVirtualizationApiUserSessionMessage.ps1 new file mode 100644 index 000000000000..aa65fca2e962 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Send-AzDesktopVirtualizationApiUserSessionMessage.ps1 @@ -0,0 +1,227 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Send a message to a user. +.Description +Send a message to a user. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SENDMESSAGE : Represents message sent to a UserSession. + [MessageBody ]: Body of message. + [MessageTitle ]: Title of message. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/send-azdesktopvirtualizationapiusersessionmessage +#> +function Send-AzDesktopVirtualizationApiUserSessionMessage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SendExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${SessionHostName}, + + [Parameter(ParameterSetName='Send')] + [Parameter(ParameterSetName='SendExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Send', Mandatory)] + [Parameter(ParameterSetName='SendExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the user session within the specified session host + ${UserSessionId}, + + [Parameter(ParameterSetName='SendViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SendViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Send', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SendViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage] + # Represents message sent to a UserSession. + # To construct, see NOTES section for SENDMESSAGE properties and create a hash table. + ${SendMessage}, + + [Parameter(ParameterSetName='SendExpanded')] + [Parameter(ParameterSetName='SendViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Body of message. + ${MessageBody}, + + [Parameter(ParameterSetName='SendExpanded')] + [Parameter(ParameterSetName='SendViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Title of message. + ${MessageTitle}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # 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 = @{ + Send = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_Send'; + SendExpanded = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendExpanded'; + SendViaIdentity = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity'; + SendViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Send-AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded'; + } + if (('Send', 'SendExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplication.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplication.ps1 new file mode 100644 index 000000000000..ede4d91a2ab2 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplication.ps1 @@ -0,0 +1,256 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an application. +.Description +Update an application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplication +#> +function Update-AzDesktopVirtualizationApiApplication { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${GroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application within the specified application group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType] + # Resource Type of Application. + ${ApplicationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Command Line Arguments for Application. + ${CommandLineArgument}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting] + # Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. + ${CommandLineSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Application. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies a path for the executable file for the application. + ${FilePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Application. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Index of the icon. + ${IconIndex}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to icon. + ${IconPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package application Id for MSIX applications + ${MsixPackageApplicationId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Specifies the package family name for MSIX applications + ${MsixPackageFamilyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies whether to show the RemoteApp program in the RD Web Access server. + ${ShowInPortal}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplication_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplicationGroup.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplicationGroup.ps1 new file mode 100644 index 000000000000..7fdc7ec2eae0 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiApplicationGroup.ps1 @@ -0,0 +1,193 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an applicationGroup. +.Description +Update an applicationGroup. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiapplicationgroup +#> +function Update-AzDesktopVirtualizationApiApplicationGroup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ApplicationGroupName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of ApplicationGroup. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of ApplicationGroup. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplicationGroup_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiDesktop.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiDesktop.ps1 new file mode 100644 index 000000000000..222e8d9489f6 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiDesktop.ps1 @@ -0,0 +1,199 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a desktop. +.Description +Update a desktop. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapidesktop +#> +function Update-AzDesktopVirtualizationApiDesktop { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the application group + ${ApplicationGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DesktopName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the desktop within the specified desktop group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Desktop. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Desktop. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiDesktop_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPool.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPool.ps1 new file mode 100644 index 000000000000..9e992b218f45 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPool.ps1 @@ -0,0 +1,370 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a host pool. +.Description +Update a host pool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SESSIONHOSTCONFIGURATION : The session host configurations of HostPool. + [DiskType ]: The disk type used by virtual machine in hostpool session host. + [DomainAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [DomainAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [DomainAdminUserName ]: The user name to the account. + [DomainInfoJoinType ]: The type of domain join done by the virtual machine. + [DomainInfoMdmProviderGuid ]: The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + [DomainInfoName ]: The domain a virtual machine connected to a hostpool will join. + [ImageInfoCustomId ]: The resource id of the custom image or shared image. Image type must be CustomImage. + [ImageInfoStorageBlobUri ]: The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + [ImageInfoType ]: The type of image session hosts use in the hostpool. + [LocalAdminPasswordKeyVaultResourceId ]: The keyvault resource id to the keyvault secrets. + [LocalAdminPasswordSecretName ]: The keyvault secret name the password is stored in. + [LocalAdminUserName ]: The user name to the account. + [MarketPlaceInfoExactVersion ]: The exact version of the image. + [MarketPlaceInfoOffer ]: The offer of the image. + [MarketPlaceInfoPublisher ]: The publisher of the image. + [MarketPlaceInfoSku ]: The sku of the image. + [VMCustomConfigurationUri ]: The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + [VMSizeId ]: The id of the size of a virtual machine connected to a hostpool. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpool +#> +function Update-AzDesktopVirtualizationApiHostPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('HostPoolName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Custom rdp property of HostPool. + ${CustomRdpProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of HostPool. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of HostPool. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType] + # The type of the load balancer. + ${LoadBalancerType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The max session limit of HostPool. + ${MaxSessionLimit}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType] + # PersonalDesktopAssignment type for HostPool. + ${PersonalDesktopAssignmentType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType] + # The type of preferred application group type, default to Desktop Application Group + ${PreferredAppGroupType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek] + # Day of the week. + ${PrimaryWindowDayOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${PrimaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled to allow this resource to be access from the public network + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # Expiration time of registration token. + ${RegistrationInfoExpirationTime}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation] + # The type of resetting the token. + ${RegistrationInfoRegistrationTokenOperation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The ring number of HostPool. + ${Ring}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # Set of days of the week on which this schedule is active. + ${SecondaryWindowDaysOfWeek}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The update start hour of the day. + # (0 - 23) + ${SecondaryWindowHour}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType] + # The type of maintenance for session host components. + ${SessionHostComponentUpdateConfigurationMaintenanceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to use localTime of the virtual machine. + ${SessionHostComponentUpdateConfigurationUseSessionHostLocalTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties] + # The session host configurations of HostPool. + # To construct, see NOTES section for SESSIONHOSTCONFIGURATION properties and create a hash table. + ${SessionHostConfiguration}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # ClientId for the registered Relying Party used to issue WVD SSO certificates. + ${SsoClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Path to Azure KeyVault storing the secret used for communication to ADFS. + ${SsoClientSecretKeyVaultPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType] + # The type of single sign on Secret Type. + ${SsoSecretType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # URL to customer ADFS server for signing WVD SSO certificates. + ${SsoadfsAuthority}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # The flag to turn on/off StartVMOnConnect feature. + ${StartVMOnConnect}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # VM template for sessionhosts configuration within hostpool. + ${VMTemplate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Is validation environment. + ${ValidationEnvironment}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPool_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPoolPost.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPoolPost.ps1 new file mode 100644 index 000000000000..03d34475cec5 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiHostPoolPost.ps1 @@ -0,0 +1,241 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Initiate update of a hostpool. +.Description +Initiate update of a hostpool. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.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 + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +PARAMETERMAINTENANCEALERT : The alerts given to customers for hostpool update. + [BeforeKickOff ]: Whether to send maintenance alert after or before hostpool update. False by default. + [Duration ]: The duration of the hostpool update in seconds. + [Message ]: The path to the legacy object to migrate. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapihostpoolpost +#> +function Update-AzDesktopVirtualizationApiHostPoolPost { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # Grace period before logging off users in seconds. + ${ParameterLogOffDelaySecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Log off message sent to user for logoff. + ${ParameterLogOffMessage}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]] + # The alerts given to customers for hostpool update. + # To construct, see NOTES section for PARAMETERMAINTENANCEALERT properties and create a hash table. + ${ParameterMaintenanceAlert}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Int32] + # The maximum virtual machines to be removed during hostpool update. + ${ParameterMaxVmsRemovedDuringUpdate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether to save original disk. + # False by default. + ${ParameterSaveOriginalDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.DateTime] + # The time the hostpool update is schedule for. + ${ScheduledTime}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + # Must be set if useLocalTime is true. + ${ScheduledTimeZone}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + ${ValidateOnly}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPoolPost_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiMsixPackage.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiMsixPackage.ps1 new file mode 100644 index 000000000000..0c2a7150308e --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiMsixPackage.ps1 @@ -0,0 +1,199 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an MSIX Package. +.Description +Update an MSIX Package. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapimsixpackage +#> +function Update-AzDesktopVirtualizationApiMsixPackage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('MsixPackageFullName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The version specific package full name of the MSIX package within specified hostpool + ${FullName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Display name for MSIX Package. + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Set a version of the package to be active across hostpool. + ${IsActive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Set Registration mode. + # Regular or Delayed. + ${IsRegularRegistration}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiMsixPackage_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiScalingPlan.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiScalingPlan.ps1 new file mode 100644 index 000000000000..db779175e680 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiScalingPlan.ps1 @@ -0,0 +1,250 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a scaling plan. +.Description +Update a scaling plan. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +HOSTPOOLREFERENCE : List of ScalingHostPoolReference definitions. + [HostPoolArmPath ]: Arm path of referenced hostpool. + [ScalingPlanEnabled ]: Is the scaling plan enabled for this hostpool. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace + +SCHEDULE : List of ScalingSchedule definitions. + [DaysOfWeek ]: Set of days of the week on which this schedule is active. + [Name ]: Name of the scaling schedule. + [OffPeakLoadBalancingAlgorithm ]: Load balancing algorithm for off-peak period. + [OffPeakStartTime ]: Starting time for off-peak period. + [PeakLoadBalancingAlgorithm ]: Load balancing algorithm for peak period. + [PeakStartTime ]: Starting time for peak period. + [RampDownCapacityThresholdPct ]: Capacity threshold for ramp down period. + [RampDownForceLogoffUser ]: Should users be logged off forcefully from hosts. + [RampDownLoadBalancingAlgorithm ]: Load balancing algorithm for ramp down period. + [RampDownMinimumHostsPct ]: Minimum host percentage for ramp down period. + [RampDownNotificationMessage ]: Notification message for users during ramp down period. + [RampDownStartTime ]: Starting time for ramp down period. + [RampDownStopHostsWhen ]: Specifies when to stop hosts during ramp down period. + [RampDownWaitTimeMinute ]: Number of minutes to wait to stop hosts during ramp down period. + [RampUpCapacityThresholdPct ]: Capacity threshold for ramp up period. + [RampUpLoadBalancingAlgorithm ]: Load balancing algorithm for ramp up period. + [RampUpMinimumHostsPct ]: Minimum host percentage for ramp up period. + [RampUpStartTime ]: Starting time for ramp up period. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiscalingplan +#> +function Update-AzDesktopVirtualizationApiScalingPlan { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ScalingPlanName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the scaling plan. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of scaling plan. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Exclusion tag for scaling plan. + ${ExclusionTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User friendly name of scaling plan. + ${FriendlyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]] + # List of ScalingHostPoolReference definitions. + # To construct, see NOTES section for HOSTPOOLREFERENCE properties and create a hash table. + ${HostPoolReference}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType] + # HostPool type for desktop. + ${HostPoolType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]] + # List of ScalingSchedule definitions. + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Timezone of the scaling plan. + ${TimeZone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiScalingPlan_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiSessionHost.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiSessionHost.ps1 new file mode 100644 index 000000000000..ff2003fc6179 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiSessionHost.ps1 @@ -0,0 +1,192 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a session host. +.Description +Update a session host. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapisessionhost +#> +function Update-AzDesktopVirtualizationApiSessionHost { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the host pool within the specified resource group + ${HostPoolName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('SessionHostName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the session host within the specified host pool + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allow a new session. + ${AllowNewSession}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # User assigned to SessionHost. + ${AssignedUser}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiSessionHost_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiWorkspace.ps1 b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiWorkspace.ps1 new file mode 100644 index 000000000000..389681e50c8d --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/Update-AzDesktopVirtualizationApiWorkspace.ps1 @@ -0,0 +1,206 @@ + +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a workspace. +.Description +Update a workspace. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ApplicationGroupName ]: The name of the application group + [ApplicationName ]: The name of the application within the specified application group + [DesktopName ]: The name of the desktop within the specified desktop group + [HostPoolName ]: The name of the host pool within the specified resource group + [Id ]: Resource identity path + [MsixPackageFullName ]: The version specific package full name of the MSIX package within specified hostpool + [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource + [ResourceGroupName ]: The name of the resource group. The name is case insensitive. + [ScalingPlanName ]: The name of the scaling plan. + [SessionHostName ]: The name of the session host within the specified host pool + [SubscriptionId ]: The ID of the target subscription. + [UserSessionId ]: The name of the user session within the specified session host + [WorkspaceName ]: The name of the workspace +.Link +https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualizationapi/update-azdesktopvirtualizationapiworkspace +#> +function Update-AzDesktopVirtualizationApiWorkspace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('WorkspaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the workspace + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [System.String] + # The name of the resource group. + # The name is case insensitive. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String[]] + # List of applicationGroup links. + ${ApplicationGroupReference}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Description of Workspace. + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [System.String] + # Friendly name of Workspace. + ${FriendlyName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess] + # Enabled to allow this resource to be access from the public network + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags]))] + [System.Collections.Hashtable] + # tags to be updated + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiWorkspace_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.DesktopVirtualizationApi.private\Update-AzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/desktopvirtualization/exports/readme.md b/swaggerci/desktopvirtualization/exports/readme.md new file mode 100644 index 000000000000..78585885ec18 --- /dev/null +++ b/swaggerci/desktopvirtualization/exports/readme.md @@ -0,0 +1,20 @@ +# Exports +This directory contains the cmdlets *exported by* `Az.DesktopVirtualizationApi`. No other cmdlets in this repository are directly exported. What that means is the `Az.DesktopVirtualizationApi` module will run [Export-ModuleMember](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The cmdlets generated here are created every time you run `build-module.ps1`. These cmdlets are a merge of all (excluding `InternalExport`) cmdlets from the private binary (`../bin/Az.DesktopVirtualizationApi.private.dll`) and from the `../custom/Az.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generate-help.ps1 b/swaggerci/desktopvirtualization/generate-help.ps1 new file mode 100644 index 000000000000..39f84365a445 --- /dev/null +++ b/swaggerci/desktopvirtualization/generate-help.ps1 @@ -0,0 +1,73 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(-not (Test-Path $exportsFolder)) { + Write-Error "Exports folder '$exportsFolder' was not found." +} + +$directories = Get-ChildItem -Directory -Path $exportsFolder +$hasProfiles = ($directories | Measure-Object).Count -gt 0 +if(-not $hasProfiles) { + $directories = Get-Item -Path $exportsFolder +} + +$docsFolder = Join-Path $PSScriptRoot 'docs' +if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'readme.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $docsFolder -ErrorAction SilentlyContinue +$examplesFolder = Join-Path $PSScriptRoot 'examples' + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.DesktopVirtualizationApi.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.DesktopVirtualizationApi.private.dll') +$instance = [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/Module.cs b/swaggerci/desktopvirtualization/generated/Module.cs new file mode 100644 index 000000000000..6447cdd7976b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/Module.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + using SendAsyncStepDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + using PipelineChangeDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>; + using GetParameterDelegate = global::System.Func; + using ModuleLoadPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using NewRequestPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using ArgumentCompleterDelegate = global::System.Func; + using SignalDelegate = global::System.Func, global::System.Threading.Tasks.Task>; + using EventListenerDelegate = global::System.Func, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Management.Automation.InvocationInfo, string, string, string, global::System.Exception, global::System.Threading.Tasks.Task>; + using NextDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + + /// A class that contains the module-common code and data. + public partial class Module + { + /// The currently selected profile. + public string Profile = global::System.String.Empty; + + public global::System.Net.Http.HttpClientHandler _handler = new global::System.Net.Http.HttpClientHandler(); + + /// the ISendAsync pipeline instance + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline _pipeline; + + /// the ISendAsync pipeline instance (when proxy is enabled) + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline _pipelineWithProxy; + + public global::System.Net.WebProxy _webProxy = new global::System.Net.WebProxy(); + + /// Gets completion data for azure specific fields + public ArgumentCompleterDelegate ArgumentCompleter { get; set; } + + /// The instance of the Client API + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient ClientAPI { get; set; } + + /// A delegate that gets called for each signalled event + public EventListenerDelegate EventListener { get; set; } + + /// The delegate to call to get parameter data from a common module. + public GetParameterDelegate GetParameterValue { get; set; } + + /// Backing field for property. + private static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module _instance; + + /// the singleton of this module class + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module Instance => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module._instance?? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module._instance = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module()); + + /// The Name of this module + public string Name => @"Az.DesktopVirtualizationApi"; + + /// 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.DesktopVirtualizationApi"; + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void AfterCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline pipeline); + + partial void CustomInit(); + + /// Creates an instance of the HttpPipeline for each call. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the cmdlet's parameterset name. + /// An instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline for the remote call. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline CreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string processRecordId, string parameterSetName = null) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline pipeline = null; + BeforeCreatePipeline(invocationInfo, ref pipeline); + pipeline = (pipeline ?? (_handler.UseProxy ? _pipelineWithProxy : _pipeline)).Clone(); + AfterCreatePipeline(invocationInfo, ref pipeline); + pipeline.Append(new Runtime.CmdInfoHandler(processRecordId, invocationInfo, parameterSetName).SendAsync); + OnNewRequest?.Invoke( invocationInfo, correlationId,processRecordId, (step)=> { pipeline.Prepend(step); } , (step)=> { pipeline.Append(step); } ); + return pipeline; + } + + /// Gets parameters from a common module. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// The name of the parameter to get the value for. + /// + /// The parameter value from the common module. (Note: this should be type converted on the way back) + /// + public object GetParameter(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string parameterName) => GetParameterValue?.Invoke( ResourceId, Name, invocationInfo, correlationId,parameterName ); + + /// Initialization steps performed after the module is loaded. + public void Init() + { + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipeline.Prepend(step); } , (step)=> { _pipeline.Append(step); } ); + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipelineWithProxy.Prepend(step); } , (step)=> { _pipelineWithProxy.Append(step); } ); + CustomInit(); + } + + /// Creates the module instance. + private Module() + { + /// constructor + ClientAPI = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient(); + _handler.Proxy = _webProxy; + _pipeline = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient())); + _pipelineWithProxy = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient(_handler))); + } + + /// The HTTP Proxy to use. + /// The HTTP Proxy Credentials + /// True if the proxy should use default credentials + public void SetProxyConfiguration(global::System.Uri proxy, global::System.Management.Automation.PSCredential proxyCredential, bool proxyUseDefaultCredentials) + { + // set the proxy configuration + _webProxy.Address = proxy; + _webProxy.BypassProxyOnLocal = false; + _webProxy.Credentials = proxyCredential ?.GetNetworkCredential(); + _webProxy.UseDefaultCredentials = proxyUseDefaultCredentials; + _handler.UseProxy = proxy != null; + } + + /// Called to dispatch events to the common module listener + /// The ID of the event + /// The cancellation token for the event + /// A delegate to get the detailed event data + /// The callback for the event dispatcher + /// The from the cmdlet + /// the cmdlet's parameterset name. + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the exception that is being thrown (if available) + /// + /// A that will be complete when handling of the event is completed. + /// + public async global::System.Threading.Tasks.Task Signal(string id, global::System.Threading.CancellationToken token, global::System.Func getEventData, SignalDelegate signal, global::System.Management.Automation.InvocationInfo invocationInfo, string parameterSetName, string correlationId, string processRecordId, global::System.Exception exception) + { + using( NoSynchronizationContext ) + { + await EventListener?.Invoke(id,token,getEventData, signal, invocationInfo, parameterSetName, correlationId,processRecordId,exception); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/DesktopVirtualizationApiClient.cs b/swaggerci/desktopvirtualization/generated/api/DesktopVirtualizationApiClient.cs new file mode 100644 index 000000000000..0fc66cad26ba --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/DesktopVirtualizationApiClient.cs @@ -0,0 +1,12631 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Low-level API implementation for the Desktop Virtualization API Client service. + /// + public partial class DesktopVirtualizationApiClient + { + + /// Create or update an applicationGroup. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// Object containing ApplicationGroup definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsCreateOrUpdate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update an applicationGroup. + /// + /// Object containing ApplicationGroup definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// Object containing ApplicationGroup definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove an applicationGroup. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsDelete(string subscriptionId, string resourceGroupName, string applicationGroupName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove an applicationGroup. + /// + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsDeleteViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsDelete_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + } + } + + /// Get an application group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsGet(string subscriptionId, string resourceGroupName, string applicationGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get an application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsGet_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + } + } + + /// List applicationGroups. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List applicationGroups. + /// + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsListByResourceGroupViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups'"); + } + + // 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.DesktopVirtualization/applicationGroups" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List applicationGroups in subscription. + /// The ID of the target subscription. + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsListBySubscription(string subscriptionId, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List applicationGroups in subscription. + /// + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsListBySubscriptionViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-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.DesktopVirtualization/applicationGroups$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups'"); + } + + // 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.DesktopVirtualization/applicationGroups" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsListBySubscription_Validate(string subscriptionId, string Filter, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Update an applicationGroup. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// Object containing ApplicationGroup definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsUpdate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update an applicationGroup. + /// + /// Object containing ApplicationGroup definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationGroupsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationGroupsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// Object containing ApplicationGroup definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationGroupsUpdate_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update an application. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the application within the specified application group + /// Object containing Application definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsCreateOrUpdate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/applications/" + + global::System.Uri.EscapeDataString(applicationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update an application. + /// + /// Object containing Application definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/applications/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var applicationName = _match.Groups["applicationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/applications/" + + applicationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the application within the specified application group + /// Object containing Application definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(applicationName),applicationName); + await eventListener.AssertMinimumLength(nameof(applicationName),applicationName,3); + await eventListener.AssertMaximumLength(nameof(applicationName),applicationName,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove an application. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the application within the specified application group + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsDelete(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/applications/" + + global::System.Uri.EscapeDataString(applicationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove an application. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsDeleteViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/applications/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var applicationName = _match.Groups["applicationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/applications/" + + applicationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the application within the specified application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsDelete_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(applicationName),applicationName); + await eventListener.AssertMinimumLength(nameof(applicationName),applicationName,3); + await eventListener.AssertMaximumLength(nameof(applicationName),applicationName,24); + } + } + + /// Get an application. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the application within the specified application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsGet(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/applications/" + + global::System.Uri.EscapeDataString(applicationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get an application. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/applications/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var applicationName = _match.Groups["applicationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/applications/" + + applicationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the application within the specified application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsGet_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(applicationName),applicationName); + await eventListener.AssertMinimumLength(nameof(applicationName),applicationName,3); + await eventListener.AssertMaximumLength(nameof(applicationName),applicationName,24); + } + } + + /// List applications. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsList(string subscriptionId, string resourceGroupName, string applicationGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/applications" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List applications. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/applications$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/applications" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsList_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + } + } + + /// Update an application. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the application within the specified application group + /// Object containing Application definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsUpdate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/applications/" + + global::System.Uri.EscapeDataString(applicationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update an application. + /// + /// Object containing Application definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ApplicationsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/applications/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var applicationName = _match.Groups["applicationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/applications/" + + applicationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the application within the specified application group + /// Object containing Application definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ApplicationsUpdate_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string applicationName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(applicationName),applicationName); + await eventListener.AssertMinimumLength(nameof(applicationName),applicationName,3); + await eventListener.AssertMaximumLength(nameof(applicationName),applicationName,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get a desktop. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the desktop within the specified desktop 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsGet(string subscriptionId, string resourceGroupName, string applicationGroupName, string desktopName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/desktops/" + + global::System.Uri.EscapeDataString(desktopName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a desktop. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/desktops/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var desktopName = _match.Groups["desktopName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/desktops/" + + desktopName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Desktop.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the desktop within the specified desktop group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsGet_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string desktopName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(desktopName),desktopName); + await eventListener.AssertMinimumLength(nameof(desktopName),desktopName,3); + await eventListener.AssertMaximumLength(nameof(desktopName),desktopName,24); + } + } + + /// List desktops. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsList(string subscriptionId, string resourceGroupName, string applicationGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/desktops" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List desktops. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/desktops$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/desktops" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsList_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + } + } + + /// Update a desktop. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application group + /// The name of the desktop within the specified desktop group + /// Object containing Desktop definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsUpdate(string subscriptionId, string resourceGroupName, string applicationGroupName, string desktopName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/desktops/" + + global::System.Uri.EscapeDataString(desktopName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a desktop. + /// + /// Object containing Desktop definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DesktopsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/desktops/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + var desktopName = _match.Groups["desktopName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/desktops/" + + desktopName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DesktopsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Desktop.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// The name of the desktop within the specified desktop group + /// Object containing Desktop definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DesktopsUpdate_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, string desktopName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + await eventListener.AssertNotNull(nameof(desktopName),desktopName); + await eventListener.AssertMinimumLength(nameof(desktopName),desktopName,3); + await eventListener.AssertMaximumLength(nameof(desktopName),desktopName,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Initiate update of a hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Object containing HostPool update definitions. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolPostUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/update" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolPostUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Initiate update of a hostpool. + /// + /// Object containing HostPool update definitions. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolPostUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate body, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/update$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/update'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/update" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolPostUpdate_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolPostUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: location + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Object containing HostPool update definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolPostUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Control update of a hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Object containing control action for hostpool update. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsControlUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter body, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/controlUpdate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsControlUpdate_Call(request,onNoContent,onDefault,eventListener,sender); + } + } + + /// Control update of a hostpool. + /// + /// Object containing control action for hostpool update. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsControlUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter body, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/controlUpdate$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/controlUpdate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/controlUpdate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsControlUpdate_Call(request,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsControlUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Object containing control action for hostpool update. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsControlUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update a host pool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Object containing HostPool definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsCreateOrUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update a host pool. + /// + /// Object containing HostPool definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Object containing HostPool definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove a host pool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Force flag to delete sessionHost. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsDelete(string subscriptionId, string resourceGroupName, string hostPoolName, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a host pool. + /// + /// Force flag to delete sessionHost. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsDeleteViaIdentity(global::System.String viaIdentity, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Force flag to delete sessionHost. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsDelete_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, bool? force, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Get a host pool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsGet(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a host pool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// List hostPools in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsList(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.DesktopVirtualization/hostPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List hostPools. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsListByResourceGroup(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List hostPools. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsListByResourceGroupViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools'"); + } + + // 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.DesktopVirtualization/hostPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 HostPoolsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + } + } + + /// List hostPools in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-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.DesktopVirtualization/hostPools$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/hostPools'"); + } + + // 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.DesktopVirtualization/hostPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 HostPoolsList_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Registration token of the host pool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsRetrieveRegistrationToken(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/retrieveRegistrationToken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsRetrieveRegistrationToken_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Registration token of the host pool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsRetrieveRegistrationTokenViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/retrieveRegistrationToken$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/retrieveRegistrationToken'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/retrieveRegistrationToken" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsRetrieveRegistrationToken_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsRetrieveRegistrationToken_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsRetrieveRegistrationToken_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Update a host pool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Object containing HostPool definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a host pool. + /// + /// Object containing HostPool definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task HostPoolsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.HostPoolsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Object containing HostPool definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task HostPoolsUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// Object containing URI to MSIX Image + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixImagesExpand(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/expandMsixImage" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixImagesExpand_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// + /// Object containing URI to MSIX Image + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixImagesExpandViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/expandMsixImage$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/expandMsixImage" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixImagesExpand_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixImagesExpand_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// Object containing URI to MSIX Image + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixImagesExpand_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update a MSIX package. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// Object containing MSIX Package definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesCreateOrUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/msixPackages/" + + global::System.Uri.EscapeDataString(msixPackageFullName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update a MSIX package. + /// + /// Object containing MSIX Package definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/msixPackages/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var msixPackageFullName = _match.Groups["msixPackageFullName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/msixPackages/" + + msixPackageFullName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// Object containing MSIX Package definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(msixPackageFullName),msixPackageFullName); + await eventListener.AssertMinimumLength(nameof(msixPackageFullName),msixPackageFullName,3); + await eventListener.AssertMaximumLength(nameof(msixPackageFullName),msixPackageFullName,100); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove an MSIX Package. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesDelete(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/msixPackages/" + + global::System.Uri.EscapeDataString(msixPackageFullName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove an MSIX Package. + /// + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesDeleteViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/msixPackages/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var msixPackageFullName = _match.Groups["msixPackageFullName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/msixPackages/" + + msixPackageFullName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesDelete_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(msixPackageFullName),msixPackageFullName); + await eventListener.AssertMinimumLength(nameof(msixPackageFullName),msixPackageFullName,3); + await eventListener.AssertMaximumLength(nameof(msixPackageFullName),msixPackageFullName,100); + } + } + + /// Get a msixpackage. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesGet(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/msixPackages/" + + global::System.Uri.EscapeDataString(msixPackageFullName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a msixpackage. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/msixPackages/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var msixPackageFullName = _match.Groups["msixPackageFullName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/msixPackages/" + + msixPackageFullName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(msixPackageFullName),msixPackageFullName); + await eventListener.AssertMinimumLength(nameof(msixPackageFullName),msixPackageFullName,3); + await eventListener.AssertMaximumLength(nameof(msixPackageFullName),msixPackageFullName,100); + } + } + + /// List MSIX packages in hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesList(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/msixPackages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List MSIX packages in hostpool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/msixPackages$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/msixPackages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesList_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Update an MSIX Package. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// Object containing MSIX Package definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourcegroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/msixPackages/" + + global::System.Uri.EscapeDataString(msixPackageFullName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update an MSIX Package. + /// + /// Object containing MSIX Package definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task MsixPackagesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourcegroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/msixPackages/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var msixPackageFullName = _match.Groups["msixPackageFullName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourcegroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/msixPackages/" + + msixPackageFullName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MsixPackagesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The version specific package full name of the MSIX package within specified hostpool + /// Object containing MSIX Package definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task MsixPackagesUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string msixPackageFullName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(msixPackageFullName),msixPackageFullName); + await eventListener.AssertMinimumLength(nameof(msixPackageFullName),msixPackageFullName,3); + await eventListener.AssertMaximumLength(nameof(msixPackageFullName),msixPackageFullName,100); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// List all of the available operations the Desktop Virtualization resource provider supports. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to 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, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.DesktopVirtualization/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,eventListener,sender); + } + } + + /// + /// List all of the available operations the Desktop Virtualization resource provider supports. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to 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, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-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.DesktopVirtualization/operations$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.DesktopVirtualization/operations'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.DesktopVirtualization/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to 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, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + throw new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException(_response); + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// Remove a connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDeleteByHostPool_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDeleteByHostPool_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByHostPool_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// Remove a connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByWorkspace(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDeleteByWorkspace_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByWorkspaceViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDeleteByWorkspace_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByWorkspace_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteByWorkspace_Validate(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// Get a private endpoint connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGetByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a private endpoint connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGetByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// Get a private endpoint connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByWorkspace(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGetByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a private endpoint connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByWorkspaceViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGetByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByWorkspace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetByWorkspace_Validate(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// List private endpoint connections associated with hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List private endpoint connections associated with hostpool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/privateEndpointConnections$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionListResultWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// List private endpoint connections. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByWorkspace(string subscriptionId, string resourceGroupName, string workspaceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List private endpoint connections. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByWorkspaceViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)/privateEndpointConnections$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByWorkspace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionListResultWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByWorkspace_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + } + } + + /// Approve or reject a private endpoint connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// Object containing the updated connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdateByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Approve or reject a private endpoint connection. + /// + /// Object containing the updated connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByHostPoolViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdateByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the private endpoint connection associated with the Azure resource + /// Object containing the updated connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Approve or reject a private endpoint connection. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// Object containing the updated connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByWorkspace(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdateByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Approve or reject a private endpoint connection. + /// + /// Object containing the updated connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByWorkspaceViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)/privateEndpointConnections/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdateByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByWorkspace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// The name of the private endpoint connection associated with the Azure resource + /// Object containing the updated connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateByWorkspace_Validate(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// List the private link resources available for this hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the private link resources available for this hostpool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/privateLinkResources$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateLinkResources'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// List the private link resources available for this workspace. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByWorkspace(string subscriptionId, string resourceGroupName, string workspaceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the private link resources available for this workspace. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByWorkspaceViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)/privateLinkResources$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateLinkResources'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByWorkspace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByWorkspace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByWorkspace_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + } + } + + /// Create or update a scaling plan. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the scaling plan. + /// Object containing scaling plan definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansCreate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + global::System.Uri.EscapeDataString(scalingPlanName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansCreate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update a scaling plan. + /// + /// Object containing scaling plan definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansCreateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/scalingPlans/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var scalingPlanName = _match.Groups["scalingPlanName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + scalingPlanName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansCreate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansCreate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the scaling plan. + /// Object containing scaling plan definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansCreate_Validate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(scalingPlanName),scalingPlanName); + await eventListener.AssertMinimumLength(nameof(scalingPlanName),scalingPlanName,3); + await eventListener.AssertMaximumLength(nameof(scalingPlanName),scalingPlanName,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove a scaling plan. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the scaling plan. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansDelete(string subscriptionId, string resourceGroupName, string scalingPlanName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + global::System.Uri.EscapeDataString(scalingPlanName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a scaling plan. + /// + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansDeleteViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/scalingPlans/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var scalingPlanName = _match.Groups["scalingPlanName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + scalingPlanName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the scaling plan. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansDelete_Validate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(scalingPlanName),scalingPlanName); + await eventListener.AssertMinimumLength(nameof(scalingPlanName),scalingPlanName,3); + await eventListener.AssertMaximumLength(nameof(scalingPlanName),scalingPlanName,24); + } + } + + /// Get a scaling plan. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the scaling plan. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansGet(string subscriptionId, string resourceGroupName, string scalingPlanName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + global::System.Uri.EscapeDataString(scalingPlanName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a scaling plan. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/scalingPlans/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var scalingPlanName = _match.Groups["scalingPlanName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + scalingPlanName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the scaling plan. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansGet_Validate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(scalingPlanName),scalingPlanName); + await eventListener.AssertMinimumLength(nameof(scalingPlanName),scalingPlanName,3); + await eventListener.AssertMaximumLength(nameof(scalingPlanName),scalingPlanName,24); + } + } + + /// List scaling plan associated with hostpool. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List scaling plan associated with hostpool. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/scalingPlans$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/scalingPlans'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansListByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansListByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// List scaling plans. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListByResourceGroup(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List scaling plans. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListByResourceGroupViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/scalingPlans$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans'"); + } + + // 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.DesktopVirtualization/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 ScalingPlansListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + } + } + + /// List scaling plans in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List scaling plans in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansListBySubscriptionViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-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.DesktopVirtualization/scalingPlans$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/scalingPlans'"); + } + + // 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.DesktopVirtualization/scalingPlans" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 ScalingPlansListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Update a scaling plan. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the scaling plan. + /// Object containing scaling plan definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansUpdate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + global::System.Uri.EscapeDataString(scalingPlanName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a scaling plan. + /// + /// Object containing scaling plan definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScalingPlansUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/scalingPlans/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var scalingPlanName = _match.Groups["scalingPlanName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/scalingPlans/" + + scalingPlanName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScalingPlansUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the scaling plan. + /// Object containing scaling plan definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScalingPlansUpdate_Validate(string subscriptionId, string resourceGroupName, string scalingPlanName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(scalingPlanName),scalingPlanName); + await eventListener.AssertMinimumLength(nameof(scalingPlanName),scalingPlanName,3); + await eventListener.AssertMaximumLength(nameof(scalingPlanName),scalingPlanName,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove a SessionHost. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// Force flag to force sessionHost deletion even when userSession exists. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsDelete(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a SessionHost. + /// + /// Force flag to force sessionHost deletion even when userSession exists. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsDeleteViaIdentity(global::System.String viaIdentity, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// Force flag to force sessionHost deletion even when userSession exists. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsDelete_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, bool? force, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + } + } + + /// Get a session host. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsGet(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a session host. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHost.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + } + } + + /// List sessionHosts. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsList(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List sessionHosts. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsList_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Update a session host. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// Object containing SessionHost definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsUpdate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a session host. + /// + /// Object containing SessionHost definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SessionHostsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SessionHostsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHost.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// Object containing SessionHost definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SessionHostsUpdate_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// List start menu items in the given application group. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task StartMenuItemsList(string subscriptionId, string resourceGroupName, string applicationGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + global::System.Uri.EscapeDataString(applicationGroupName) + + "/startMenuItems" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StartMenuItemsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List start menu items in the given application 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task StartMenuItemsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/applicationGroups/(?[^/]+)/startMenuItems$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var applicationGroupName = _match.Groups["applicationGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/applicationGroups/" + + applicationGroupName + + "/startMenuItems" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StartMenuItemsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task StartMenuItemsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the application group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task StartMenuItemsList_Validate(string subscriptionId, string resourceGroupName, string applicationGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(applicationGroupName),applicationGroupName); + await eventListener.AssertMinimumLength(nameof(applicationGroupName),applicationGroupName,3); + await eventListener.AssertMaximumLength(nameof(applicationGroupName),applicationGroupName,64); + } + } + + /// Operation status of a validate hostpool update. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateDetailsGet(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/updateDetails/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateDetailsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation status of a validate hostpool update. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateDetailsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/updateDetails/current$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateDetails/current'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/updateDetails/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateDetailsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateDetailsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatus.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateDetailsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Operation status of a validate hostpool update. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateDetailsList(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/updateDetails" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateDetailsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation status of a validate hostpool update. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateDetailsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/updateDetails$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateDetails'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/updateDetails" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateDetailsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateDetailsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatusList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateDetailsList_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Operation status of a validate hostpool update. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateOperationResultsGet(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/updateOperationResults/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateOperationResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation status of a validate hostpool update. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateOperationResultsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/updateOperationResults/current$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateOperationResults/current'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/updateOperationResults/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateOperationResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateOperationResultsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: location + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateOperationResultsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Operation status of a validate hostpool update. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateValidationOperationResultsGet(string subscriptionId, string resourceGroupName, string hostPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/updateValidationOperationResults/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateValidationOperationResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation status of a validate hostpool update. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UpdateValidationOperationResultsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/updateValidationOperationResults/current$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateValidationOperationResults/current'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/updateValidationOperationResults/current" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UpdateValidationOperationResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateValidationOperationResultsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: location + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateValidationResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UpdateValidationOperationResultsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + } + } + + /// Remove a userSession. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// Force flag to login off userSession. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsDelete(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "/userSessions/" + + global::System.Uri.EscapeDataString(userSessionId) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a userSession. + /// + /// Force flag to login off userSession. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsDeleteViaIdentity(global::System.String viaIdentity, bool? force, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)/userSessions/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + var userSessionId = _match.Groups["userSessionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "/userSessions/" + + userSessionId + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null == force ? global::System.String.Empty : "force=" + global::System.Uri.EscapeDataString(force.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// Force flag to login off userSession. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsDelete_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, bool? force, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + await eventListener.AssertNotNull(nameof(userSessionId),userSessionId); + await eventListener.AssertMinimumLength(nameof(userSessionId),userSessionId,1); + await eventListener.AssertMaximumLength(nameof(userSessionId),userSessionId,24); + } + } + + /// Disconnect a userSession. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsDisconnect(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "/userSessions/" + + global::System.Uri.EscapeDataString(userSessionId) + + "/disconnect" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsDisconnect_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Disconnect a userSession. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsDisconnectViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)/userSessions/(?[^/]+)/disconnect$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/disconnect'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + var userSessionId = _match.Groups["userSessionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "/userSessions/" + + userSessionId + + "/disconnect" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsDisconnect_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsDisconnect_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsDisconnect_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + await eventListener.AssertNotNull(nameof(userSessionId),userSessionId); + await eventListener.AssertMinimumLength(nameof(userSessionId),userSessionId,1); + await eventListener.AssertMaximumLength(nameof(userSessionId),userSessionId,24); + } + } + + /// Get a userSession. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsGet(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "/userSessions/" + + global::System.Uri.EscapeDataString(userSessionId) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a userSession. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)/userSessions/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + var userSessionId = _match.Groups["userSessionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "/userSessions/" + + userSessionId + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSession.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsGet_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + await eventListener.AssertNotNull(nameof(userSessionId),userSessionId); + await eventListener.AssertMinimumLength(nameof(userSessionId),userSessionId,1); + await eventListener.AssertMaximumLength(nameof(userSessionId),userSessionId,24); + } + } + + /// List userSessions. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsList(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "/userSessions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List userSessions. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// OData filter expression. Valid properties for filtering are userprincipalname and sessionstate. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsListByHostPool(string subscriptionId, string resourceGroupName, string hostPoolName, string Filter, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/userSessions" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List userSessions. + /// + /// OData filter expression. Valid properties for filtering are userprincipalname and sessionstate. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsListByHostPoolViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/userSessions$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/userSessions" + + "?" + + "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.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsListByHostPool_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsListByHostPool_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// OData filter expression. Valid properties for filtering are userprincipalname and sessionstate. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsListByHostPool_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string Filter, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List userSessions. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsListViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)/userSessions$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "/userSessions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsList_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + } + } + + /// Send a message to a user. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// Object containing message includes title and message body + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsSendMessage(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + global::System.Uri.EscapeDataString(hostPoolName) + + "/sessionHosts/" + + global::System.Uri.EscapeDataString(sessionHostName) + + "/userSessions/" + + global::System.Uri.EscapeDataString(userSessionId) + + "/sendMessage" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsSendMessage_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Send a message to a user. + /// + /// Object containing message includes title and message body + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task UserSessionsSendMessageViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/hostPools/(?[^/]+)/sessionHosts/(?[^/]+)/userSessions/(?[^/]+)/sendMessage$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var hostPoolName = _match.Groups["hostPoolName"].Value; + var sessionHostName = _match.Groups["sessionHostName"].Value; + var userSessionId = _match.Groups["userSessionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/hostPools/" + + hostPoolName + + "/sessionHosts/" + + sessionHostName + + "/userSessions/" + + userSessionId + + "/sendMessage" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.UserSessionsSendMessage_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsSendMessage_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the host pool within the specified resource group + /// The name of the session host within the specified host pool + /// The name of the user session within the specified session host + /// Object containing message includes title and message body + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task UserSessionsSendMessage_Validate(string subscriptionId, string resourceGroupName, string hostPoolName, string sessionHostName, string userSessionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(hostPoolName),hostPoolName); + await eventListener.AssertMinimumLength(nameof(hostPoolName),hostPoolName,3); + await eventListener.AssertMaximumLength(nameof(hostPoolName),hostPoolName,64); + await eventListener.AssertNotNull(nameof(sessionHostName),sessionHostName); + await eventListener.AssertMinimumLength(nameof(sessionHostName),sessionHostName,3); + await eventListener.AssertMaximumLength(nameof(sessionHostName),sessionHostName,48); + await eventListener.AssertNotNull(nameof(userSessionId),userSessionId); + await eventListener.AssertMinimumLength(nameof(userSessionId),userSessionId,1); + await eventListener.AssertMaximumLength(nameof(userSessionId),userSessionId,24); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update a workspace. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// Object containing Workspace definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesCreateOrUpdate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update a workspace. + /// + /// Object containing Workspace definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// Object containing Workspace definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Remove a workspace. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesDelete(string subscriptionId, string resourceGroupName, string workspaceName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Remove a workspace. + /// + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesDeleteViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesDelete_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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesDelete_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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesDelete_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + } + } + + /// Get a workspace. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesGet(string subscriptionId, string resourceGroupName, string workspaceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a workspace. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesGetViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesGet_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + } + } + + /// List workspaces. + /// 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesListByResourceGroup(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List workspaces. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesListByResourceGroupViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces'"); + } + + // 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.DesktopVirtualization/workspaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 WorkspacesListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + } + } + + /// List workspaces in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.DesktopVirtualization/workspaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List workspaces in 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.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesListBySubscriptionViaIdentity(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.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-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.DesktopVirtualization/workspaces$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces'"); + } + + // 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.DesktopVirtualization/workspaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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 WorkspacesListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertMinimumLength(nameof(subscriptionId),subscriptionId,1); + } + } + + /// Update a workspace. + /// The ID of the target subscription. + /// The name of the resource group. The name is case insensitive. + /// The name of the workspace + /// Object containing Workspace definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesUpdate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + global::System.Uri.EscapeDataString(workspaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a workspace. + /// + /// Object containing Workspace definitions. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task WorkspacesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-05-13-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.DesktopVirtualization/workspaces/(?[^/]+)$").Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var workspaceName = _match.Groups["workspaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.DesktopVirtualization/workspaces/" + + workspaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.WorkspacesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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. + /// The name of the workspace + /// Object containing Workspace definitions. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task WorkspacesUpdate_Validate(string subscriptionId, string resourceGroupName, string workspaceName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch body, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.AssertRegEx(nameof(resourceGroupName),resourceGroupName,@"^[-\w\._\(\)]+$"); + await eventListener.AssertNotNull(nameof(workspaceName),workspaceName); + await eventListener.AssertMinimumLength(nameof(workspaceName),workspaceName,3); + await eventListener.AssertMaximumLength(nameof(workspaceName),workspaceName,64); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.PowerShell.cs new file mode 100644 index 000000000000..cf40b8752720 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Identity for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityTypeConverter))] + public partial class Identity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Identity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Identity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Identity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Identity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Identity for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityTypeConverter))] + public partial interface IIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.TypeConverter.cs new file mode 100644 index 000000000000..cd00d51e3e1d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Identity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Identity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Identity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.cs new file mode 100644 index 000000000000..d5aac1a12252 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.cs @@ -0,0 +1,86 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Identity for the resource. + public partial class Identity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal + { + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Internal Acessors for TenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal.TenantId { get => this._tenantId; set { {_tenantId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// Backing field for property. + private string _tenantId; + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? _type; + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public Identity() + { + + } + } + /// Identity for the resource. + public partial interface IIdentity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; } + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? Type { get; set; } + + } + /// Identity for the resource. + internal partial interface IIdentityInternal + + { + /// The principal ID of resource identity. + string PrincipalId { get; set; } + /// The tenant ID of resource. + string TenantId { get; set; } + /// The identity type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.json.cs new file mode 100644 index 000000000000..2f95222c2094 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Identity.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Identity for the resource. + public partial class Identity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Identity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Identity(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/Plan.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.PowerShell.cs new file mode 100644 index 000000000000..9f9737b9fe0c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Plan for the resource. + [System.ComponentModel.TypeConverter(typeof(PlanTypeConverter))] + public partial class Plan + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Plan(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Plan(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Plan(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode = (string) content.GetValueForProperty("PromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Plan(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode = (string) content.GetValueForProperty("PromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Plan for the resource. + [System.ComponentModel.TypeConverter(typeof(PlanTypeConverter))] + public partial interface IPlan + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.TypeConverter.cs new file mode 100644 index 000000000000..be96b4f2fdc9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PlanTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Plan.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Plan.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Plan.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.cs new file mode 100644 index 000000000000..e0abb299bafa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.cs @@ -0,0 +1,129 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Plan for the resource. + public partial class Plan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal + { + + /// Backing field for property. + private string _name; + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _product; + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Product { get => this._product; set => this._product = value; } + + /// Backing field for property. + private string _promotionCode; + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PromotionCode { get => this._promotionCode; set => this._promotionCode = value; } + + /// Backing field for property. + private string _publisher; + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Publisher { get => this._publisher; set => this._publisher = value; } + + /// Backing field for property. + private string _version; + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public Plan() + { + + } + } + /// Plan for the resource. + public partial interface IPlan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + string Product { get; set; } + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + string PromotionCode { get; set; } + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string Publisher { get; set; } + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Plan for the resource. + internal partial interface IPlanInternal + + { + /// A user defined name of the 3rd Party Artifact that is being procured. + string Name { get; set; } + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + string Product { get; set; } + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + string PromotionCode { get; set; } + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + string Publisher { get; set; } + /// The version of the desired product/artifact. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.json.cs new file mode 100644 index 000000000000..b50c14dc6c64 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Plan.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Plan for the resource. + public partial class Plan + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Plan(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Plan(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_publisher = If( json?.PropertyT("publisher"), out var __jsonPublisher) ? (string)__jsonPublisher : (string)Publisher;} + {_product = If( json?.PropertyT("product"), out var __jsonProduct) ? (string)__jsonProduct : (string)Product;} + {_promotionCode = If( json?.PropertyT("promotionCode"), out var __jsonPromotionCode) ? (string)__jsonPromotionCode : (string)PromotionCode;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._publisher)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publisher.ToString()) : null, "publisher" ,container.Add ); + AddIf( null != (((object)this._product)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._product.ToString()) : null, "product" ,container.Add ); + AddIf( null != (((object)this._promotionCode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._promotionCode.ToString()) : null, "promotionCode" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.PowerShell.cs new file mode 100644 index 000000000000..6b1b3a65ada5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.PowerShell.cs @@ -0,0 +1,131 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The Private Endpoint resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointTypeConverter))] + public partial class PrivateEndpoint + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpoint(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpoint(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpoint(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)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 PrivateEndpoint(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)this).Id, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The Private Endpoint resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointTypeConverter))] + public partial interface IPrivateEndpoint + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.TypeConverter.cs new file mode 100644 index 000000000000..a008dda9e2ae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpoint.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpoint.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpoint.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.cs new file mode 100644 index 000000000000..7b60846eeed9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.cs @@ -0,0 +1,49 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint resource. + public partial class PrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal + { + + /// Backing field for property. + private string _id; + + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal.Id { get => this._id; set { {_id = value;} } } + + /// Creates an new instance. + public PrivateEndpoint() + { + + } + } + /// The Private Endpoint resource. + public partial interface IPrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The ARM identifier for Private Endpoint", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + + } + /// The Private Endpoint resource. + internal partial interface IPrivateEndpointInternal + + { + /// The ARM identifier for Private Endpoint + string Id { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.json.cs new file mode 100644 index 000000000000..97ed8687928d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpoint.json.cs @@ -0,0 +1,104 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint resource. + public partial class PrivateEndpoint + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateEndpoint(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpoint(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.PowerShell.cs new file mode 100644 index 000000000000..2802bc159c9b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The Private Endpoint Connection resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionTypeConverter))] + public partial class PrivateEndpointConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The Private Endpoint Connection resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionTypeConverter))] + public partial interface IPrivateEndpointConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.TypeConverter.cs new file mode 100644 index 000000000000..4d43dfeb1dd8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.cs new file mode 100644 index 000000000000..5e59eb2da528 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.cs @@ -0,0 +1,182 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint Connection resource. + public partial class PrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal.PrivateEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint = value; } + + /// Internal Acessors for PrivateEndpointId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal.PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal.PrivateLinkServiceConnectionState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId; } + + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired = value ?? null; } + + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription = value ?? null; } + + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties _property; + + /// Resource properties. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionProperties()); set => this._property = value; } + + /// The provisioning state of the private endpoint connection resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PrivateEndpointConnection() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The Private Endpoint Connection resource. + public partial interface IPrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The ARM identifier for Private Endpoint", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; } + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message indicating if changes on the service provider require any updates on the consumer.", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The reason for approval/rejection of the connection.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// The provisioning state of the private endpoint connection resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The provisioning state of the private endpoint connection resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get; set; } + + } + /// The Private Endpoint Connection resource. + internal partial interface IPrivateEndpointConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// The resource of private end point. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint PrivateEndpoint { get; set; } + /// The ARM identifier for Private Endpoint + string PrivateEndpointId { get; set; } + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState PrivateLinkServiceConnectionState { get; set; } + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// Resource properties. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties Property { get; set; } + /// The provisioning state of the private endpoint connection resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.json.cs new file mode 100644 index 000000000000..3a7e5a657d68 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnection.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint Connection resource. + public partial class PrivateEndpointConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateEndpointConnection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnection(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..47b37cf9ae4d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of the PrivateEndpointConnectProperties. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionPropertiesTypeConverter))] + public partial class PrivateEndpointConnectionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the PrivateEndpointConnectProperties. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionPropertiesTypeConverter))] + public partial interface IPrivateEndpointConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..bd0029015793 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.TypeConverter.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.cs new file mode 100644 index 000000000000..002d82627d17 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of the PrivateEndpointConnectProperties. + public partial class PrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal + { + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal.PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpoint()); set { {_privateEndpoint = value;} } } + + /// Internal Acessors for PrivateEndpointId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal.PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)PrivateEndpoint).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)PrivateEndpoint).Id = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionPropertiesInternal.PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionState()); set { {_privateLinkServiceConnectionState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint _privateEndpoint; + + /// The resource of private end point. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpoint()); set => this._privateEndpoint = value; } + + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointInternal)PrivateEndpoint).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState _privateLinkServiceConnectionState; + + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionState()); set => this._privateLinkServiceConnectionState = value; } + + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).ActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).ActionsRequired = value ?? null; } + + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).Description = value ?? null; } + + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)PrivateLinkServiceConnectionState).Status = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? _provisioningState; + + /// The provisioning state of the private endpoint connection resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Creates an new instance. + public PrivateEndpointConnectionProperties() + { + + } + } + /// Properties of the PrivateEndpointConnectProperties. + public partial interface IPrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The ARM identifier for Private Endpoint", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; } + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message indicating if changes on the service provider require any updates on the consumer.", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The reason for approval/rejection of the connection.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// The provisioning state of the private endpoint connection resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The provisioning state of the private endpoint connection resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get; set; } + + } + /// Properties of the PrivateEndpointConnectProperties. + internal partial interface IPrivateEndpointConnectionPropertiesInternal + + { + /// The resource of private end point. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint PrivateEndpoint { get; set; } + /// The ARM identifier for Private Endpoint + string PrivateEndpointId { get; set; } + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState PrivateLinkServiceConnectionState { get; set; } + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// The provisioning state of the private endpoint connection resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.json.cs new file mode 100644 index 000000000000..adacb5b44acc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateEndpointConnectionProperties.json.cs @@ -0,0 +1,106 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of the PrivateEndpointConnectProperties. + public partial class PrivateEndpointConnectionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_privateEndpoint = If( json?.PropertyT("privateEndpoint"), out var __jsonPrivateEndpoint) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpoint.FromJson(__jsonPrivateEndpoint) : PrivateEndpoint;} + {_privateLinkServiceConnectionState = If( json?.PropertyT("privateLinkServiceConnectionState"), out var __jsonPrivateLinkServiceConnectionState) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionState.FromJson(__jsonPrivateLinkServiceConnectionState) : PrivateLinkServiceConnectionState;} + {_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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._privateEndpoint ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._privateEndpoint.ToJson(null,serializationMode) : null, "privateEndpoint" ,container.Add ); + AddIf( null != this._privateLinkServiceConnectionState ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._privateLinkServiceConnectionState.ToJson(null,serializationMode) : null, "privateLinkServiceConnectionState" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.PowerShell.cs new file mode 100644 index 000000000000..f3cc82078868 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + [System.ComponentModel.TypeConverter(typeof(PrivateLinkServiceConnectionStateTypeConverter))] + public partial class PrivateLinkServiceConnectionState + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkServiceConnectionState(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkServiceConnectionState(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkServiceConnectionState(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).ActionsRequired, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkServiceConnectionState(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal)this).ActionsRequired, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A collection of information about the state of the connection between service consumer and provider. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkServiceConnectionStateTypeConverter))] + public partial interface IPrivateLinkServiceConnectionState + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.TypeConverter.cs new file mode 100644 index 000000000000..eff0541e7d71 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkServiceConnectionStateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkServiceConnectionState.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkServiceConnectionState.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkServiceConnectionState.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.cs new file mode 100644 index 000000000000..979c7084e3ec --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.cs @@ -0,0 +1,94 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + public partial class PrivateLinkServiceConnectionState : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionStateInternal + { + + /// Backing field for property. + private string _actionsRequired; + + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ActionsRequired { get => this._actionsRequired; set => this._actionsRequired = value; } + + /// Backing field for property. + private string _description; + + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? _status; + + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? Status { get => this._status; set => this._status = value; } + + /// Creates an new instance. + public PrivateLinkServiceConnectionState() + { + + } + } + /// A collection of information about the state of the connection between service consumer and provider. + public partial interface IPrivateLinkServiceConnectionState : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message indicating if changes on the service provider require any updates on the consumer.", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string ActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The reason for approval/rejection of the connection.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? Status { get; set; } + + } + /// A collection of information about the state of the connection between service consumer and provider. + internal partial interface IPrivateLinkServiceConnectionStateInternal + + { + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + string ActionsRequired { get; set; } + /// The reason for approval/rejection of the connection. + string Description { get; set; } + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.json.cs new file mode 100644 index 000000000000..5b506c7a8390 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/PrivateLinkServiceConnectionState.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + public partial class PrivateLinkServiceConnectionState + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateLinkServiceConnectionState(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkServiceConnectionState(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_actionsRequired = If( json?.PropertyT("actionsRequired"), out var __jsonActionsRequired) ? (string)__jsonActionsRequired : (string)ActionsRequired;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._actionsRequired)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._actionsRequired.ToString()) : null, "actionsRequired" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.PowerShell.cs new file mode 100644 index 000000000000..2e4a6ebd9146 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api10.IResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Resource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Resource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Resource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/Resource.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.TypeConverter.cs new file mode 100644 index 000000000000..f201b865bc9c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Resource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Resource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Resource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.cs new file mode 100644 index 000000000000..9f3f925f6c61 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + public partial class Resource : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + + /// Backing field for property. + private string _id; + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _type; + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the resource. E.g. ""Microsoft.Compute/virtualMachines"" or ""Microsoft.Storage/storageAccounts""", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + internal partial interface IResourceInternal + + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + string Id { get; set; } + /// The name of the resource + string Name { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.json.cs new file mode 100644 index 000000000000..e20fe757090b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Resource.json.cs @@ -0,0 +1,116 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Resource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Resource(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.PowerShell.cs new file mode 100644 index 000000000000..3f11cbf565e0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.PowerShell.cs @@ -0,0 +1,183 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + /// + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetTypeConverter))] + public partial class ResourceModelWithAllowedPropertySet + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceModelWithAllowedPropertySet(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceModelWithAllowedPropertySet(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceModelWithAllowedPropertySet(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__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 ResourceModelWithAllowedPropertySet(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetTypeConverter))] + public partial interface IResourceModelWithAllowedPropertySet + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.TypeConverter.cs new file mode 100644 index 000000000000..7f986382528b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.TypeConverter.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceModelWithAllowedPropertySetTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceModelWithAllowedPropertySet.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySet.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySet.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.cs new file mode 100644 index 000000000000..467e48a61284 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.cs @@ -0,0 +1,499 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + /// + public partial class ResourceModelWithAllowedPropertySet : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal + { + + /// Backing field for property. + private string _etag; + + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Etag { get => this._etag; } + + /// 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.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity _identity; + + /// Identity for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).PrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).TenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// Backing field for property. + private string _kind; + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Kind { get => this._kind; set => this._kind = value; } + + /// Backing field for property. + private string _location; + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string _managedBy; + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ManagedBy { get => this._managedBy; set => this._managedBy = value; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Etag { get => this._etag; set { {_etag = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity()); set { {_identity = value;} } } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).PrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)Identity).TenantId = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Plan + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Plan { get => (this._plan = this._plan ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan()); set { {_plan = value;} } } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan _plan; + + /// Plan for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get => (this._plan = this._plan ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan()); set => this._plan = value; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PlanName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Name = value ?? null; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PlanProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Product; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Product = value ?? null; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PlanPromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).PromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).PromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PlanPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Publisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Publisher = value ?? null; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PlanVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)Plan).Version = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku _sku; + + /// The resource model definition representing SKU + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku()); set => this._sku = value; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SkuFamily { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Family; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Family = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Name = value ?? null; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SkuSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Size; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Size = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)Sku).Tier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags _tag; + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTags()); set => this._tag = value; } + + /// 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.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public ResourceModelWithAllowedPropertySet() + { + + } + } + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + public partial interface IResourceModelWithAllowedPropertySet : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. ", + SerializedName = @"etag", + PossibleTypes = new [] { typeof(string) })] + string Etag { get; } + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; } + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get; set; } + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(string) })] + string Kind { get; set; } + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + SerializedName = @"managedBy", + PossibleTypes = new [] { typeof(string) })] + string ManagedBy { get; set; } + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PlanName { get; set; } + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + string PlanProduct { get; set; } + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + string PlanPromotionCode { get; set; } + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string PlanPublisher { get; set; } + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string PlanVersion { get; set; } + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + string SkuFamily { get; set; } + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + string SkuSize { get; set; } + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get; set; } + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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; } + + } + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + internal partial interface IResourceModelWithAllowedPropertySetInternal + + { + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + string Etag { get; set; } + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + string Id { get; set; } + /// Identity for the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// The identity type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get; set; } + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + string Kind { get; set; } + /// The geo-location where the resource lives + string Location { get; set; } + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + string ManagedBy { get; set; } + /// The name of the resource + string Name { get; set; } + /// Plan for the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get; set; } + /// A user defined name of the 3rd Party Artifact that is being procured. + string PlanName { get; set; } + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + string PlanProduct { get; set; } + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + string PlanPromotionCode { get; set; } + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + string PlanPublisher { get; set; } + /// The version of the desired product/artifact. + string PlanVersion { get; set; } + /// The resource model definition representing SKU + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get; set; } + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + int? SkuCapacity { get; set; } + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + string SkuFamily { get; set; } + /// The name of the SKU. Ex - P3. It is typically a letter+number code + string SkuName { get; set; } + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + string SkuSize { get; set; } + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get; set; } + /// Resource tags. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { 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/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.json.cs new file mode 100644 index 000000000000..d46a40f68825 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySet.json.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// The resource model definition containing the full set of allowed properties for a resource. Except properties bag, there + /// cannot be a top level property outside of this set. + /// + public partial class ResourceModelWithAllowedPropertySet + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceModelWithAllowedPropertySet(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceModelWithAllowedPropertySet(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity.FromJson(__jsonIdentity) : Identity;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku.FromJson(__jsonSku) : Sku;} + {_plan = If( json?.PropertyT("plan"), out var __jsonPlan) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan.FromJson(__jsonPlan) : Plan;} + {_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;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_managedBy = If( json?.PropertyT("managedBy"), out var __jsonManagedBy) ? (string)__jsonManagedBy : (string)ManagedBy;} + {_kind = If( json?.PropertyT("kind"), out var __jsonKind) ? (string)__jsonKind : (string)Kind;} + {_etag = If( json?.PropertyT("etag"), out var __jsonEtag) ? (string)__jsonEtag : (string)Etag;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTags.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._plan ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._plan.ToJson(null,serializationMode) : null, "plan" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + } + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._managedBy)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._managedBy.ToString()) : null, "managedBy" ,container.Add ); + AddIf( null != (((object)this._kind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._kind.ToString()) : null, "kind" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._etag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._etag.ToString()) : null, "etag" ,container.Add ); + } + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.PowerShell.cs new file mode 100644 index 000000000000..902a26a78c4a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.PowerShell.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetIdentityTypeConverter))] + public partial class ResourceModelWithAllowedPropertySetIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceModelWithAllowedPropertySetIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceModelWithAllowedPropertySetIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceModelWithAllowedPropertySetIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceModelWithAllowedPropertySetIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetIdentityTypeConverter))] + public partial interface IResourceModelWithAllowedPropertySetIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.TypeConverter.cs new file mode 100644 index 000000000000..e9370b25104a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceModelWithAllowedPropertySetIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceModelWithAllowedPropertySetIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.cs new file mode 100644 index 000000000000..6540d8b3afb6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.cs @@ -0,0 +1,65 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetIdentity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentityInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity __identity = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity(); + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal.PrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).PrincipalId = value; } + + /// Internal Acessors for TenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal.TenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).TenantId = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).PrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string TenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).TenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal)__identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// + /// Creates an new instance. + /// + public ResourceModelWithAllowedPropertySetIdentity() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__identity), __identity); + await eventListener.AssertObjectIsValid(nameof(__identity), __identity); + } + } + public partial interface IResourceModelWithAllowedPropertySetIdentity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity + { + + } + internal partial interface IResourceModelWithAllowedPropertySetIdentityInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentityInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.json.cs new file mode 100644 index 000000000000..81a206f29652 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetIdentity.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceModelWithAllowedPropertySetIdentity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceModelWithAllowedPropertySetIdentity(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __identity = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Identity(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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __identity?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.PowerShell.cs new file mode 100644 index 000000000000..a94290b5e5c2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.PowerShell.cs @@ -0,0 +1,140 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetPlanTypeConverter))] + public partial class ResourceModelWithAllowedPropertySetPlan + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceModelWithAllowedPropertySetPlan(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceModelWithAllowedPropertySetPlan(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceModelWithAllowedPropertySetPlan(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode = (string) content.GetValueForProperty("PromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceModelWithAllowedPropertySetPlan(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Product, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode = (string) content.GetValueForProperty("PromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).PromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)this).Version, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetPlanTypeConverter))] + public partial interface IResourceModelWithAllowedPropertySetPlan + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.TypeConverter.cs new file mode 100644 index 000000000000..cfeac02dedb4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceModelWithAllowedPropertySetPlanTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceModelWithAllowedPropertySetPlan.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetPlan.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetPlan.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.cs new file mode 100644 index 000000000000..04f1e7233d0a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetPlan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlanInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan __plan = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan(); + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Name = value ; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Product { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Product; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Product = value ; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).PromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).PromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Publisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Publisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Publisher = value ; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal)__plan).Version = value ?? null; } + + /// Creates an new instance. + public ResourceModelWithAllowedPropertySetPlan() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__plan), __plan); + await eventListener.AssertObjectIsValid(nameof(__plan), __plan); + } + } + public partial interface IResourceModelWithAllowedPropertySetPlan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan + { + + } + internal partial interface IResourceModelWithAllowedPropertySetPlanInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlanInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.json.cs new file mode 100644 index 000000000000..049dcb136d30 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetPlan.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetPlan + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetPlan FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceModelWithAllowedPropertySetPlan(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceModelWithAllowedPropertySetPlan(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __plan = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Plan(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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __plan?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.PowerShell.cs new file mode 100644 index 000000000000..b1fc24c8fe44 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.PowerShell.cs @@ -0,0 +1,140 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetSkuTypeConverter))] + public partial class ResourceModelWithAllowedPropertySetSku + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceModelWithAllowedPropertySetSku(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceModelWithAllowedPropertySetSku(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceModelWithAllowedPropertySetSku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size = (string) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family = (string) content.GetValueForProperty("Family",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceModelWithAllowedPropertySetSku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size = (string) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family = (string) content.GetValueForProperty("Family",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetSkuTypeConverter))] + public partial interface IResourceModelWithAllowedPropertySetSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.TypeConverter.cs new file mode 100644 index 000000000000..8b5c16383ad0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceModelWithAllowedPropertySetSkuTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceModelWithAllowedPropertySetSku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetSku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetSku.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.cs new file mode 100644 index 000000000000..25dd0ef0a3de --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.cs @@ -0,0 +1,75 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetSku : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSkuInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku __sku = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku(); + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public int? Capacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Capacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Family { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Family; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Family = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Name = value ; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Size { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Size; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Size = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? Tier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)__sku).Tier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// Creates an new instance. + public ResourceModelWithAllowedPropertySetSku() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__sku), __sku); + await eventListener.AssertObjectIsValid(nameof(__sku), __sku); + } + } + public partial interface IResourceModelWithAllowedPropertySetSku : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku + { + + } + internal partial interface IResourceModelWithAllowedPropertySetSkuInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.json.cs new file mode 100644 index 000000000000..db2701326a1a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetSku.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetSku + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetSku FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceModelWithAllowedPropertySetSku(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceModelWithAllowedPropertySetSku(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __sku = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Sku(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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __sku?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.PowerShell.cs new file mode 100644 index 000000000000..6889475bf7af --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.PowerShell.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetTagsTypeConverter))] + public partial class ResourceModelWithAllowedPropertySetTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceModelWithAllowedPropertySetTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceModelWithAllowedPropertySetTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceModelWithAllowedPropertySetTags(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 ResourceModelWithAllowedPropertySetTags(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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(ResourceModelWithAllowedPropertySetTagsTypeConverter))] + public partial interface IResourceModelWithAllowedPropertySetTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.TypeConverter.cs new file mode 100644 index 000000000000..98e3ba8cbdab --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceModelWithAllowedPropertySetTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceModelWithAllowedPropertySetTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceModelWithAllowedPropertySetTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.cs new file mode 100644 index 000000000000..a4ea54ee3047 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Resource tags. + public partial class ResourceModelWithAllowedPropertySetTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTagsInternal + { + + /// Creates an new instance. + public ResourceModelWithAllowedPropertySetTags() + { + + } + } + /// Resource tags. + public partial interface IResourceModelWithAllowedPropertySetTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// Resource tags. + internal partial interface IResourceModelWithAllowedPropertySetTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.dictionary.cs new file mode 100644 index 000000000000..b5f6885b1643 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ResourceModelWithAllowedPropertySetTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.json.cs new file mode 100644 index 000000000000..b3c89dd93236 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/ResourceModelWithAllowedPropertySetTags.json.cs @@ -0,0 +1,104 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Resource tags. + public partial class ResourceModelWithAllowedPropertySetTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceModelWithAllowedPropertySetTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ResourceModelWithAllowedPropertySetTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.PowerShell.cs new file mode 100644 index 000000000000..5a20f01d82cb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The resource model definition representing SKU + [System.ComponentModel.TypeConverter(typeof(SkuTypeConverter))] + public partial class Sku + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Sku(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Sku(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Sku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size = (string) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family = (string) content.GetValueForProperty("Family",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Sku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size = (string) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Size, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family = (string) content.GetValueForProperty("Family",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Family, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource model definition representing SKU + [System.ComponentModel.TypeConverter(typeof(SkuTypeConverter))] + public partial interface ISku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.TypeConverter.cs new file mode 100644 index 000000000000..125ca97ec69f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Sku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Sku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Sku.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.cs new file mode 100644 index 000000000000..049645e8581a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.cs @@ -0,0 +1,144 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The resource model definition representing SKU + public partial class Sku : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISkuInternal + { + + /// Backing field for property. + private int? _capacity; + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Capacity { get => this._capacity; set => this._capacity = value; } + + /// Backing field for property. + private string _family; + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Family { get => this._family; set => this._family = value; } + + /// Backing field for property. + private string _name; + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _size; + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Size { get => this._size; set => this._size = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? _tier; + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? Tier { get => this._tier; set => this._tier = value; } + + /// Creates an new instance. + public Sku() + { + + } + } + /// The resource model definition representing SKU + public partial interface ISku : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? Capacity { get; set; } + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + string Family { get; set; } + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + string Size { get; set; } + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? Tier { get; set; } + + } + /// The resource model definition representing SKU + internal partial interface ISkuInternal + + { + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + int? Capacity { get; set; } + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + string Family { get; set; } + /// The name of the SKU. Ex - P3. It is typically a letter+number code + string Name { get; set; } + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + string Size { get; set; } + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? Tier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.json.cs new file mode 100644 index 000000000000..97a1ed0064cc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api10/Sku.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The resource model definition representing SKU + public partial class Sku + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Sku(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Sku(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_tier = If( json?.PropertyT("tier"), out var __jsonTier) ? (string)__jsonTier : (string)Tier;} + {_size = If( json?.PropertyT("size"), out var __jsonSize) ? (string)__jsonSize : (string)Size;} + {_family = If( json?.PropertyT("family"), out var __jsonFamily) ? (string)__jsonFamily : (string)Family;} + {_capacity = If( json?.PropertyT("capacity"), out var __jsonCapacity) ? (int?)__jsonCapacity : Capacity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._tier)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._tier.ToString()) : null, "tier" ,container.Add ); + AddIf( null != (((object)this._size)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._size.ToString()) : null, "size" ,container.Add ); + AddIf( null != (((object)this._family)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._family.ToString()) : null, "family" ,container.Add ); + AddIf( null != this._capacity ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._capacity) : null, "capacity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.PowerShell.cs new file mode 100644 index 000000000000..b4d5c4b4ac8c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.PowerShell.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20.ISystemData DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemData(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemData(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20/SystemData.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.TypeConverter.cs new file mode 100644 index 000000000000..c2c640f30976 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemDataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemData.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.cs new file mode 100644 index 000000000000..35559ac4cad1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.cs @@ -0,0 +1,131 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal + { + + /// Backing field for property. + private global::System.DateTime? _createdAt; + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CreatedBy { get => this._createdBy; set => this._createdBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? _createdByType; + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string LastModifiedBy { get => this._lastModifiedBy; set => this._lastModifiedBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? _lastModifiedByType; + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? LastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.json.cs new file mode 100644 index 000000000000..369edd639296 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20/SystemData.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SystemData(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._createdBy.ToString()) : null, "createdBy" ,container.Add ); + AddIf( null != (((object)this._createdByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._createdByType.ToString()) : null, "createdByType" ,container.Add ); + AddIf( null != this._createdAt ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastModifiedBy.ToString()) : null, "lastModifiedBy" ,container.Add ); + AddIf( null != (((object)this._lastModifiedByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastModifiedByType.ToString()) : null, "lastModifiedByType" ,container.Add ); + AddIf( null != this._lastModifiedAt ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.PowerShell.cs new file mode 100644 index 000000000000..163a9710be24 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.PowerShell.cs @@ -0,0 +1,181 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Application properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationTypeConverter))] + public partial class Application + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Application(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconContent, i => i); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Application(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal)this).IconContent, i => i); + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Application(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Application(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for Application properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationTypeConverter))] + public partial interface IApplication + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.TypeConverter.cs new file mode 100644 index 000000000000..d1863ba7e996 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Application.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Application.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Application.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.cs new file mode 100644 index 000000000000..8563b3bc31b7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.cs @@ -0,0 +1,395 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Application properties. + public partial class Application : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ApplicationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ApplicationType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType)""); } + + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CommandLineArgument { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).CommandLineArgument; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).CommandLineArgument = value ?? null; } + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).CommandLineSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).CommandLineSetting = value ; } + + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).Description = value ?? null; } + + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FilePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).FilePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).FilePath = value ?? null; } + + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public byte[] IconContent { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconContent; } + + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IconHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconHash; } + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? IconIndex { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconIndex; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconIndex = value ?? default(int); } + + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IconPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconPath = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for IconContent + byte[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal.IconContent { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconContent; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconContent = value; } + + /// Internal Acessors for IconHash + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal.IconHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconHash; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).IconHash = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MsixPackageApplicationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).MsixPackageApplicationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).MsixPackageApplicationId = value ?? null; } + + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MsixPackageFamilyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).MsixPackageFamilyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).MsixPackageFamilyName = value ?? null; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// ObjectId of Application. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ObjectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties _property; + + /// Detailed properties for Application + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationProperties()); set => this._property = value; } + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? ShowInPortal { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ShowInPortal; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)Property).ShowInPortal = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Application() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Schema for Application properties. + public partial interface IApplication : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get; set; } + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"the icon a 64 bit string as a byte array.", + SerializedName = @"iconContent", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] IconContent { get; } + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hash of the icon.", + SerializedName = @"iconHash", + PossibleTypes = new [] { typeof(string) })] + string IconHash { get; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageFamilyName { get; set; } + /// ObjectId of Application. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Application. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(bool) })] + bool? ShowInPortal { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Schema for Application properties. + internal partial interface IApplicationInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Resource Type of Application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get; set; } + /// Description of Application. + string Description { get; set; } + /// Specifies a path for the executable file for the application. + string FilePath { get; set; } + /// Friendly name of Application. + string FriendlyName { get; set; } + /// the icon a 64 bit string as a byte array. + byte[] IconContent { get; set; } + /// Hash of the icon. + string IconHash { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to icon. + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + string MsixPackageFamilyName { get; set; } + /// ObjectId of Application. (internal use) + string ObjectId { get; set; } + /// Detailed properties for Application + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties Property { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + bool? ShowInPortal { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.json.cs new file mode 100644 index 000000000000..a932b3d4a22f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Application.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Application properties. + public partial class Application + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Application(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Application(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.PowerShell.cs new file mode 100644 index 000000000000..b2d18cff22a1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.PowerShell.cs @@ -0,0 +1,215 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a ApplicationGroup definition. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupTypeConverter))] + public partial class ApplicationGroup + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroup(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).WorkspaceArmPath = (string) content.GetValueForProperty("WorkspaceArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).WorkspaceArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ApplicationGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) content.GetValueForProperty("ApplicationGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ApplicationGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationGroup(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).WorkspaceArmPath = (string) content.GetValueForProperty("WorkspaceArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).WorkspaceArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ApplicationGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) content.GetValueForProperty("ApplicationGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).ApplicationGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal)this).MigrationRequestMigrationPath, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroup(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroup(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a ApplicationGroup definition. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupTypeConverter))] + public partial interface IApplicationGroup + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.TypeConverter.cs new file mode 100644 index 000000000000..81af2dc57725 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroup.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroup.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroup.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.cs new file mode 100644 index 000000000000..25c97980e50f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.cs @@ -0,0 +1,441 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a ApplicationGroup definition. + public partial class ApplicationGroup : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(); + + /// Resource Type of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).ApplicationGroupType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).ApplicationGroupType = value ; } + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).CloudPcResource; } + + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).Description = value ?? null; } + + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; } + + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// HostPool arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string HostPoolArmPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).HostPoolArmPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).HostPoolArmPath = value ; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; } + + /// Identity for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity = value ?? null /* model class */; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind = value ?? null; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location = value ?? null; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string ManagedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy = value ?? null; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id = value; } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type = value; } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).CloudPcResource; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).CloudPcResource = value; } + + /// Internal Acessors for MigrationRequest + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.MigrationRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequest = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for WorkspaceArmPath + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupInternal.WorkspaceArmPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).WorkspaceArmPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).WorkspaceArmPath = value; } + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MigrationRequestMigrationPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequestMigrationPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequestMigrationPath = value ?? null; } + + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequestOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).MigrationRequestOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; } + + /// ObjectId of ApplicationGroup. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).ObjectId; } + + /// Plan for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan = value ?? null /* model class */; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName = value ?? null; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct = value ?? null; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher = value ?? null; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties _property; + + /// Detailed properties for ApplicationGroup + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupProperties()); set => this._property = value; } + + /// The resource model definition representing SKU + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku = value ?? null /* model class */; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuFamily { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName = value ?? null; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; } + + /// Workspace arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string WorkspaceArmPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)Property).WorkspaceArmPath; } + + /// Creates an new instance. + public ApplicationGroup() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + await eventListener.AssertObjectIsValid(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + } + } + /// Represents a ApplicationGroup definition. + public partial interface IApplicationGroup : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet + { + /// Resource Type of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource Type of ApplicationGroup.", + SerializedName = @"applicationGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get; set; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// HostPool arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool arm path of ApplicationGroup.", + SerializedName = @"hostPoolArmPath", + PossibleTypes = new [] { typeof(string) })] + string HostPoolArmPath { get; set; } + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of ApplicationGroup. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of ApplicationGroup. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Workspace arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Workspace arm path of ApplicationGroup.", + SerializedName = @"workspaceArmPath", + PossibleTypes = new [] { typeof(string) })] + string WorkspaceArmPath { get; } + + } + /// Represents a ApplicationGroup definition. + internal partial interface IApplicationGroupInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal + { + /// Resource Type of ApplicationGroup. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Description of ApplicationGroup. + string Description { get; set; } + /// Friendly name of ApplicationGroup. + string FriendlyName { get; set; } + /// HostPool arm path of ApplicationGroup. + string HostPoolArmPath { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get; set; } + /// The path to the legacy object to migrate. + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of ApplicationGroup. (internal use) + string ObjectId { get; set; } + /// Detailed properties for ApplicationGroup + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties Property { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Workspace arm path of ApplicationGroup. + string WorkspaceArmPath { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.json.cs new file mode 100644 index 000000000000..c16fab7bb29e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroup.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a ApplicationGroup definition. + public partial class ApplicationGroup + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationGroup(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroup(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resourceModelWithAllowedPropertySet?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.PowerShell.cs new file mode 100644 index 000000000000..4ef59d25acd4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of ApplicationGroup definitions. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupListTypeConverter))] + public partial class ApplicationGroupList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroupList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)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 ApplicationGroupList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroupList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroupList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of ApplicationGroup definitions. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupListTypeConverter))] + public partial interface IApplicationGroupList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.TypeConverter.cs new file mode 100644 index 000000000000..b75be2a30ee8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroupList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroupList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroupList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.cs new file mode 100644 index 000000000000..d45ace11eec1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of ApplicationGroup definitions. + public partial class ApplicationGroupList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[] _value; + + /// List of ApplicationGroup definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ApplicationGroupList() + { + + } + } + /// List of ApplicationGroup definitions. + public partial interface IApplicationGroupList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of ApplicationGroup definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ApplicationGroup definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[] Value { get; set; } + + } + /// List of ApplicationGroup definitions. + internal partial interface IApplicationGroupListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of ApplicationGroup definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.json.cs new file mode 100644 index 000000000000..787e54c53020 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of ApplicationGroup definitions. + public partial class ApplicationGroupList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationGroupList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroupList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.PowerShell.cs new file mode 100644 index 000000000000..beb41724f089 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// ApplicationGroup properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchTypeConverter))] + public partial class ApplicationGroupPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroupPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).FriendlyName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationGroupPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal)this).FriendlyName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroupPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroupPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ApplicationGroup properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchTypeConverter))] + public partial interface IApplicationGroupPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.TypeConverter.cs new file mode 100644 index 000000000000..44f3ef9c11c4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroupPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroupPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroupPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.cs new file mode 100644 index 000000000000..bb85da8680f2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.cs @@ -0,0 +1,130 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// ApplicationGroup properties that can be patched. + public partial class ApplicationGroupPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)Property).Description = value ?? null; } + + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchProperties()); set { {_property = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties _property; + + /// ApplicationGroup properties that can be patched. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTags()); set => this._tag = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ApplicationGroupPatch() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// ApplicationGroup properties that can be patched. + public partial interface IApplicationGroupPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags Tag { get; set; } + + } + /// ApplicationGroup properties that can be patched. + internal partial interface IApplicationGroupPatchInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Description of ApplicationGroup. + string Description { get; set; } + /// Friendly name of ApplicationGroup. + string FriendlyName { get; set; } + /// ApplicationGroup properties that can be patched. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties Property { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.json.cs new file mode 100644 index 000000000000..b52eb9b577b7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatch.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// ApplicationGroup properties that can be patched. + public partial class ApplicationGroupPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationGroupPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroupPatch(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..dfbc5daa156b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// ApplicationGroup properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchPropertiesTypeConverter))] + public partial class ApplicationGroupPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroupPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationGroupPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal)this).FriendlyName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroupPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroupPatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ApplicationGroup properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchPropertiesTypeConverter))] + public partial interface IApplicationGroupPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..b46c50cbc912 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroupPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroupPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroupPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.cs new file mode 100644 index 000000000000..497b91f76186 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// ApplicationGroup properties that can be patched. + public partial class ApplicationGroupPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Creates an new instance. + public ApplicationGroupPatchProperties() + { + + } + } + /// ApplicationGroup properties that can be patched. + public partial interface IApplicationGroupPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + + } + /// ApplicationGroup properties that can be patched. + internal partial interface IApplicationGroupPatchPropertiesInternal + + { + /// Description of ApplicationGroup. + string Description { get; set; } + /// Friendly name of ApplicationGroup. + string FriendlyName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.json.cs new file mode 100644 index 000000000000..17888b8dad29 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// ApplicationGroup properties that can be patched. + public partial class ApplicationGroupPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationGroupPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroupPatchProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.PowerShell.cs new file mode 100644 index 000000000000..a64c007b7434 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchTagsTypeConverter))] + public partial class ApplicationGroupPatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroupPatchTags(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 ApplicationGroupPatchTags(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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroupPatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroupPatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPatchTagsTypeConverter))] + public partial interface IApplicationGroupPatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.TypeConverter.cs new file mode 100644 index 000000000000..3db61e3fc269 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupPatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroupPatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroupPatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroupPatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.cs new file mode 100644 index 000000000000..40d22d4f7967 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ApplicationGroupPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTagsInternal + { + + /// Creates an new instance. + public ApplicationGroupPatchTags() + { + + } + } + /// tags to be updated + public partial interface IApplicationGroupPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IApplicationGroupPatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.dictionary.cs new file mode 100644 index 000000000000..76f2c45b7f68 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ApplicationGroupPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.json.cs new file mode 100644 index 000000000000..73f9f3aa2fc7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupPatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ApplicationGroupPatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ApplicationGroupPatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroupPatchTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.PowerShell.cs new file mode 100644 index 000000000000..208acfe9f300 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for ApplicationGroup properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPropertiesTypeConverter))] + public partial class ApplicationGroupProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationGroupProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).WorkspaceArmPath = (string) content.GetValueForProperty("WorkspaceArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).WorkspaceArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ApplicationGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) content.GetValueForProperty("ApplicationGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ApplicationGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationGroupProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).WorkspaceArmPath = (string) content.GetValueForProperty("WorkspaceArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).WorkspaceArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ApplicationGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) content.GetValueForProperty("ApplicationGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).ApplicationGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal)this).MigrationRequestMigrationPath, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationGroupProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationGroupProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for ApplicationGroup properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationGroupPropertiesTypeConverter))] + public partial interface IApplicationGroupProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.TypeConverter.cs new file mode 100644 index 000000000000..b024bb7c0871 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationGroupPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationGroupProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationGroupProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationGroupProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.cs new file mode 100644 index 000000000000..ccedbcb6f8f8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.cs @@ -0,0 +1,197 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for ApplicationGroup properties. + public partial class ApplicationGroupProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType _applicationGroupType; + + /// Resource Type of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get => this._applicationGroupType; set => this._applicationGroupType = value; } + + /// Backing field for property. + private bool? _cloudPcResource; + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? CloudPcResource { get => this._cloudPcResource; } + + /// Backing field for property. + private string _description; + + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private string _hostPoolArmPath; + + /// HostPool arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string HostPoolArmPath { get => this._hostPoolArmPath; set => this._hostPoolArmPath = value; } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal.CloudPcResource { get => this._cloudPcResource; set { {_cloudPcResource = value;} } } + + /// Internal Acessors for MigrationRequest + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal.MigrationRequest { get => (this._migrationRequest = this._migrationRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties()); set { {_migrationRequest = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Internal Acessors for WorkspaceArmPath + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPropertiesInternal.WorkspaceArmPath { get => this._workspaceArmPath; set { {_workspaceArmPath = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties _migrationRequest; + + /// The registration info of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get => (this._migrationRequest = this._migrationRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties()); set => this._migrationRequest = value; } + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MigrationRequestMigrationPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).MigrationPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).MigrationPath = value ?? null; } + + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).Operation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of ApplicationGroup. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private string _workspaceArmPath; + + /// Workspace arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string WorkspaceArmPath { get => this._workspaceArmPath; } + + /// Creates an new instance. + public ApplicationGroupProperties() + { + + } + } + /// Schema for ApplicationGroup properties. + public partial interface IApplicationGroupProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Resource Type of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource Type of ApplicationGroup.", + SerializedName = @"applicationGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get; set; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Description of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// HostPool arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool arm path of ApplicationGroup.", + SerializedName = @"hostPoolArmPath", + PossibleTypes = new [] { typeof(string) })] + string HostPoolArmPath { get; set; } + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of ApplicationGroup. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of ApplicationGroup. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// Workspace arm path of ApplicationGroup. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Workspace arm path of ApplicationGroup.", + SerializedName = @"workspaceArmPath", + PossibleTypes = new [] { typeof(string) })] + string WorkspaceArmPath { get; } + + } + /// Schema for ApplicationGroup properties. + internal partial interface IApplicationGroupPropertiesInternal + + { + /// Resource Type of ApplicationGroup. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Description of ApplicationGroup. + string Description { get; set; } + /// Friendly name of ApplicationGroup. + string FriendlyName { get; set; } + /// HostPool arm path of ApplicationGroup. + string HostPoolArmPath { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get; set; } + /// The path to the legacy object to migrate. + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of ApplicationGroup. (internal use) + string ObjectId { get; set; } + /// Workspace arm path of ApplicationGroup. + string WorkspaceArmPath { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.json.cs new file mode 100644 index 000000000000..4e5e23734d80 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationGroupProperties.json.cs @@ -0,0 +1,124 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for ApplicationGroup properties. + public partial class ApplicationGroupProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationGroupProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_migrationRequest = If( json?.PropertyT("migrationRequest"), out var __jsonMigrationRequest) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties.FromJson(__jsonMigrationRequest) : MigrationRequest;} + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_hostPoolArmPath = If( json?.PropertyT("hostPoolArmPath"), out var __jsonHostPoolArmPath) ? (string)__jsonHostPoolArmPath : (string)HostPoolArmPath;} + {_workspaceArmPath = If( json?.PropertyT("workspaceArmPath"), out var __jsonWorkspaceArmPath) ? (string)__jsonWorkspaceArmPath : (string)WorkspaceArmPath;} + {_applicationGroupType = If( json?.PropertyT("applicationGroupType"), out var __jsonApplicationGroupType) ? (string)__jsonApplicationGroupType : (string)ApplicationGroupType;} + {_cloudPcResource = If( json?.PropertyT("cloudPcResource"), out var __jsonCloudPcResource) ? (bool?)__jsonCloudPcResource : CloudPcResource;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationGroupProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._migrationRequest ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._migrationRequest.ToJson(null,serializationMode) : null, "migrationRequest" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._hostPoolArmPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolArmPath.ToString()) : null, "hostPoolArmPath" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._workspaceArmPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._workspaceArmPath.ToString()) : null, "workspaceArmPath" ,container.Add ); + } + AddIf( null != (((object)this._applicationGroupType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationGroupType.ToString()) : null, "applicationGroupType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._cloudPcResource ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._cloudPcResource) : null, "cloudPcResource" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.PowerShell.cs new file mode 100644 index 000000000000..1e99da0f39aa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of Application definitions. + [System.ComponentModel.TypeConverter(typeof(ApplicationListTypeConverter))] + public partial class ApplicationList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)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 ApplicationList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of Application definitions. + [System.ComponentModel.TypeConverter(typeof(ApplicationListTypeConverter))] + public partial interface IApplicationList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.TypeConverter.cs new file mode 100644 index 000000000000..f39b514076d7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.cs new file mode 100644 index 000000000000..97760cb70744 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Application definitions. + public partial class ApplicationList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[] _value; + + /// List of Application definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ApplicationList() + { + + } + } + /// List of Application definitions. + public partial interface IApplicationList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of Application definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Application definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[] Value { get; set; } + + } + /// List of Application definitions. + internal partial interface IApplicationListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of Application definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.json.cs new file mode 100644 index 000000000000..b442c2da87c9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Application definitions. + public partial class ApplicationList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.PowerShell.cs new file mode 100644 index 000000000000..63ea11a26cb1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.PowerShell.cs @@ -0,0 +1,157 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Application properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchTypeConverter))] + public partial class ApplicationPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting?) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting?) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchTypeConverter))] + public partial interface IApplicationPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.TypeConverter.cs new file mode 100644 index 000000000000..27beda4eef05 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.cs new file mode 100644 index 000000000000..f62f42c2e83b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.cs @@ -0,0 +1,221 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Application properties that can be patched. + public partial class ApplicationPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal + { + + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).ApplicationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).ApplicationType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType)""); } + + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CommandLineArgument { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).CommandLineArgument; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).CommandLineArgument = value ?? null; } + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).CommandLineSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).CommandLineSetting = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting)""); } + + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).Description = value ?? null; } + + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FilePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).FilePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).FilePath = value ?? null; } + + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? IconIndex { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).IconIndex; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).IconIndex = value ?? default(int); } + + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IconPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).IconPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).IconPath = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchProperties()); set { {_property = value;} } } + + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MsixPackageApplicationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).MsixPackageApplicationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).MsixPackageApplicationId = value ?? null; } + + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MsixPackageFamilyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).MsixPackageFamilyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).MsixPackageFamilyName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties _property; + + /// Detailed properties for Application + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchProperties()); set => this._property = value; } + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? ShowInPortal { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).ShowInPortal; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)Property).ShowInPortal = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTags()); set => this._tag = value; } + + /// Creates an new instance. + public ApplicationPatch() + { + + } + } + /// Application properties that can be patched. + public partial interface IApplicationPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get; set; } + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageFamilyName { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(bool) })] + bool? ShowInPortal { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags Tag { get; set; } + + } + /// Application properties that can be patched. + internal partial interface IApplicationPatchInternal + + { + /// Resource Type of Application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get; set; } + /// Description of Application. + string Description { get; set; } + /// Specifies a path for the executable file for the application. + string FilePath { get; set; } + /// Friendly name of Application. + string FriendlyName { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to icon. + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + string MsixPackageFamilyName { get; set; } + /// Detailed properties for Application + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties Property { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + bool? ShowInPortal { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.json.cs new file mode 100644 index 000000000000..5ef760a605b2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Application properties that can be patched. + public partial class ApplicationPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationPatch(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..28701ea0b342 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Application properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchPropertiesTypeConverter))] + public partial class ApplicationPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting?) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting?) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationPatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchPropertiesTypeConverter))] + public partial interface IApplicationPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..bdc842f7a37f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.cs new file mode 100644 index 000000000000..a5a8354ccc9c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.cs @@ -0,0 +1,225 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Application properties that can be patched. + public partial class ApplicationPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? _applicationType; + + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get => this._applicationType; set => this._applicationType = value; } + + /// Backing field for property. + private string _commandLineArgument; + + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CommandLineArgument { get => this._commandLineArgument; set => this._commandLineArgument = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? _commandLineSetting; + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get => this._commandLineSetting; set => this._commandLineSetting = value; } + + /// Backing field for property. + private string _description; + + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _filePath; + + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FilePath { get => this._filePath; set => this._filePath = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private int? _iconIndex; + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? IconIndex { get => this._iconIndex; set => this._iconIndex = value; } + + /// Backing field for property. + private string _iconPath; + + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconPath { get => this._iconPath; set => this._iconPath = value; } + + /// Backing field for property. + private string _msixPackageApplicationId; + + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MsixPackageApplicationId { get => this._msixPackageApplicationId; set => this._msixPackageApplicationId = value; } + + /// Backing field for property. + private string _msixPackageFamilyName; + + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MsixPackageFamilyName { get => this._msixPackageFamilyName; set => this._msixPackageFamilyName = value; } + + /// Backing field for property. + private bool? _showInPortal; + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ShowInPortal { get => this._showInPortal; set => this._showInPortal = value; } + + /// Creates an new instance. + public ApplicationPatchProperties() + { + + } + } + /// Application properties that can be patched. + public partial interface IApplicationPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get; set; } + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageFamilyName { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(bool) })] + bool? ShowInPortal { get; set; } + + } + /// Application properties that can be patched. + internal partial interface IApplicationPatchPropertiesInternal + + { + /// Resource Type of Application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting? CommandLineSetting { get; set; } + /// Description of Application. + string Description { get; set; } + /// Specifies a path for the executable file for the application. + string FilePath { get; set; } + /// Friendly name of Application. + string FriendlyName { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to icon. + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + string MsixPackageFamilyName { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + bool? ShowInPortal { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.json.cs new file mode 100644 index 000000000000..906c17756a23 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchProperties.json.cs @@ -0,0 +1,121 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Application properties that can be patched. + public partial class ApplicationPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_filePath = If( json?.PropertyT("filePath"), out var __jsonFilePath) ? (string)__jsonFilePath : (string)FilePath;} + {_commandLineSetting = If( json?.PropertyT("commandLineSetting"), out var __jsonCommandLineSetting) ? (string)__jsonCommandLineSetting : (string)CommandLineSetting;} + {_commandLineArgument = If( json?.PropertyT("commandLineArguments"), out var __jsonCommandLineArguments) ? (string)__jsonCommandLineArguments : (string)CommandLineArgument;} + {_showInPortal = If( json?.PropertyT("showInPortal"), out var __jsonShowInPortal) ? (bool?)__jsonShowInPortal : ShowInPortal;} + {_iconPath = If( json?.PropertyT("iconPath"), out var __jsonIconPath) ? (string)__jsonIconPath : (string)IconPath;} + {_iconIndex = If( json?.PropertyT("iconIndex"), out var __jsonIconIndex) ? (int?)__jsonIconIndex : IconIndex;} + {_msixPackageFamilyName = If( json?.PropertyT("msixPackageFamilyName"), out var __jsonMsixPackageFamilyName) ? (string)__jsonMsixPackageFamilyName : (string)MsixPackageFamilyName;} + {_msixPackageApplicationId = If( json?.PropertyT("msixPackageApplicationId"), out var __jsonMsixPackageApplicationId) ? (string)__jsonMsixPackageApplicationId : (string)MsixPackageApplicationId;} + {_applicationType = If( json?.PropertyT("applicationType"), out var __jsonApplicationType) ? (string)__jsonApplicationType : (string)ApplicationType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationPatchProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._filePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._filePath.ToString()) : null, "filePath" ,container.Add ); + AddIf( null != (((object)this._commandLineSetting)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._commandLineSetting.ToString()) : null, "commandLineSetting" ,container.Add ); + AddIf( null != (((object)this._commandLineArgument)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._commandLineArgument.ToString()) : null, "commandLineArguments" ,container.Add ); + AddIf( null != this._showInPortal ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._showInPortal) : null, "showInPortal" ,container.Add ); + AddIf( null != (((object)this._iconPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconPath.ToString()) : null, "iconPath" ,container.Add ); + AddIf( null != this._iconIndex ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._iconIndex) : null, "iconIndex" ,container.Add ); + AddIf( null != (((object)this._msixPackageFamilyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._msixPackageFamilyName.ToString()) : null, "msixPackageFamilyName" ,container.Add ); + AddIf( null != (((object)this._msixPackageApplicationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._msixPackageApplicationId.ToString()) : null, "msixPackageApplicationId" ,container.Add ); + AddIf( null != (((object)this._applicationType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationType.ToString()) : null, "applicationType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.PowerShell.cs new file mode 100644 index 000000000000..5453965d7f84 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchTagsTypeConverter))] + public partial class ApplicationPatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationPatchTags(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 ApplicationPatchTags(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.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationPatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationPatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ApplicationPatchTagsTypeConverter))] + public partial interface IApplicationPatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.TypeConverter.cs new file mode 100644 index 000000000000..72bc5a9c824b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationPatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationPatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationPatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationPatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.cs new file mode 100644 index 000000000000..07a2690b3c1c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ApplicationPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTagsInternal + { + + /// Creates an new instance. + public ApplicationPatchTags() + { + + } + } + /// tags to be updated + public partial interface IApplicationPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IApplicationPatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.dictionary.cs new file mode 100644 index 000000000000..3fa5152c21ed --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ApplicationPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.json.cs new file mode 100644 index 000000000000..0732b8dd50fa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationPatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ApplicationPatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ApplicationPatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationPatchTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.PowerShell.cs new file mode 100644 index 000000000000..236485f5bdbc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.PowerShell.cs @@ -0,0 +1,159 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Application properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationPropertiesTypeConverter))] + public partial class ApplicationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ApplicationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconContent, i => i); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageFamilyName = (string) content.GetValueForProperty("MsixPackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageApplicationId = (string) content.GetValueForProperty("MsixPackageApplicationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).MsixPackageApplicationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineSetting = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) content.GetValueForProperty("CommandLineSetting",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineSetting, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ShowInPortal = (bool?) content.GetValueForProperty("ShowInPortal",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).ShowInPortal, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal)this).IconContent, i => i); + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for Application properties. + [System.ComponentModel.TypeConverter(typeof(ApplicationPropertiesTypeConverter))] + public partial interface IApplicationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.TypeConverter.cs new file mode 100644 index 000000000000..24b7549dabaf --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.cs new file mode 100644 index 000000000000..beded69bb20b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.cs @@ -0,0 +1,285 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Application properties. + public partial class ApplicationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? _applicationType; + + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get => this._applicationType; set => this._applicationType = value; } + + /// Backing field for property. + private string _commandLineArgument; + + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CommandLineArgument { get => this._commandLineArgument; set => this._commandLineArgument = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting _commandLineSetting; + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get => this._commandLineSetting; set => this._commandLineSetting = value; } + + /// Backing field for property. + private string _description; + + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _filePath; + + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FilePath { get => this._filePath; set => this._filePath = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private byte[] _iconContent; + + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public byte[] IconContent { get => this._iconContent; } + + /// Backing field for property. + private string _iconHash; + + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconHash { get => this._iconHash; } + + /// Backing field for property. + private int? _iconIndex; + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? IconIndex { get => this._iconIndex; set => this._iconIndex = value; } + + /// Backing field for property. + private string _iconPath; + + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconPath { get => this._iconPath; set => this._iconPath = value; } + + /// Internal Acessors for IconContent + byte[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal.IconContent { get => this._iconContent; set { {_iconContent = value;} } } + + /// Internal Acessors for IconHash + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal.IconHash { get => this._iconHash; set { {_iconHash = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Backing field for property. + private string _msixPackageApplicationId; + + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MsixPackageApplicationId { get => this._msixPackageApplicationId; set => this._msixPackageApplicationId = value; } + + /// Backing field for property. + private string _msixPackageFamilyName; + + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MsixPackageFamilyName { get => this._msixPackageFamilyName; set => this._msixPackageFamilyName = value; } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of Application. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private bool? _showInPortal; + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ShowInPortal { get => this._showInPortal; set => this._showInPortal = value; } + + /// Creates an new instance. + public ApplicationProperties() + { + + } + } + /// Schema for Application properties. + public partial interface IApplicationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Resource Type of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get; set; } + /// Description of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Specifies a path for the executable file for the application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Friendly name of Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"the icon a 64 bit string as a byte array.", + SerializedName = @"iconContent", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] IconContent { get; } + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hash of the icon.", + SerializedName = @"iconHash", + PossibleTypes = new [] { typeof(string) })] + string IconHash { get; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageFamilyName { get; set; } + /// ObjectId of Application. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Application. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(bool) })] + bool? ShowInPortal { get; set; } + + } + /// Schema for Application properties. + internal partial interface IApplicationPropertiesInternal + + { + /// Resource Type of Application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType? ApplicationType { get; set; } + /// Command Line Arguments for Application. + string CommandLineArgument { get; set; } + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get; set; } + /// Description of Application. + string Description { get; set; } + /// Specifies a path for the executable file for the application. + string FilePath { get; set; } + /// Friendly name of Application. + string FriendlyName { get; set; } + /// the icon a 64 bit string as a byte array. + byte[] IconContent { get; set; } + /// Hash of the icon. + string IconHash { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to icon. + string IconPath { get; set; } + /// Specifies the package application Id for MSIX applications + string MsixPackageApplicationId { get; set; } + /// Specifies the package family name for MSIX applications + string MsixPackageFamilyName { get; set; } + /// ObjectId of Application. (internal use) + string ObjectId { get; set; } + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + bool? ShowInPortal { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.json.cs new file mode 100644 index 000000000000..3b0a2912d26c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ApplicationProperties.json.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Application properties. + public partial class ApplicationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_filePath = If( json?.PropertyT("filePath"), out var __jsonFilePath) ? (string)__jsonFilePath : (string)FilePath;} + {_msixPackageFamilyName = If( json?.PropertyT("msixPackageFamilyName"), out var __jsonMsixPackageFamilyName) ? (string)__jsonMsixPackageFamilyName : (string)MsixPackageFamilyName;} + {_msixPackageApplicationId = If( json?.PropertyT("msixPackageApplicationId"), out var __jsonMsixPackageApplicationId) ? (string)__jsonMsixPackageApplicationId : (string)MsixPackageApplicationId;} + {_applicationType = If( json?.PropertyT("applicationType"), out var __jsonApplicationType) ? (string)__jsonApplicationType : (string)ApplicationType;} + {_commandLineSetting = If( json?.PropertyT("commandLineSetting"), out var __jsonCommandLineSetting) ? (string)__jsonCommandLineSetting : (string)CommandLineSetting;} + {_commandLineArgument = If( json?.PropertyT("commandLineArguments"), out var __jsonCommandLineArguments) ? (string)__jsonCommandLineArguments : (string)CommandLineArgument;} + {_showInPortal = If( json?.PropertyT("showInPortal"), out var __jsonShowInPortal) ? (bool?)__jsonShowInPortal : ShowInPortal;} + {_iconPath = If( json?.PropertyT("iconPath"), out var __jsonIconPath) ? (string)__jsonIconPath : (string)IconPath;} + {_iconIndex = If( json?.PropertyT("iconIndex"), out var __jsonIconIndex) ? (int?)__jsonIconIndex : IconIndex;} + {_iconHash = If( json?.PropertyT("iconHash"), out var __jsonIconHash) ? (string)__jsonIconHash : (string)IconHash;} + {_iconContent = If( json?.PropertyT("iconContent"), out var __w) ? System.Convert.FromBase64String( ((string)__w).Replace("_","/").Replace("-","+").PadRight( ((string)__w).Length + ((string)__w).Length * 3 % 4, '=') ) : null;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ApplicationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._filePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._filePath.ToString()) : null, "filePath" ,container.Add ); + AddIf( null != (((object)this._msixPackageFamilyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._msixPackageFamilyName.ToString()) : null, "msixPackageFamilyName" ,container.Add ); + AddIf( null != (((object)this._msixPackageApplicationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._msixPackageApplicationId.ToString()) : null, "msixPackageApplicationId" ,container.Add ); + AddIf( null != (((object)this._applicationType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationType.ToString()) : null, "applicationType" ,container.Add ); + AddIf( null != (((object)this._commandLineSetting)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._commandLineSetting.ToString()) : null, "commandLineSetting" ,container.Add ); + AddIf( null != (((object)this._commandLineArgument)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._commandLineArgument.ToString()) : null, "commandLineArguments" ,container.Add ); + AddIf( null != this._showInPortal ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._showInPortal) : null, "showInPortal" ,container.Add ); + AddIf( null != (((object)this._iconPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconPath.ToString()) : null, "iconPath" ,container.Add ); + AddIf( null != this._iconIndex ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._iconIndex) : null, "iconIndex" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._iconHash)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconHash.ToString()) : null, "iconHash" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._iconContent ? global::System.Convert.ToBase64String( this._iconContent) : null ,(v)=> container.Add( "iconContent",v) ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.PowerShell.cs new file mode 100644 index 000000000000..ee1a35ecc0a3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(CloudErrorTypeConverter))] + public partial class CloudError + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CloudError(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)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 CloudError(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CloudError(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CloudError(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(CloudErrorTypeConverter))] + public partial interface ICloudError + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.TypeConverter.cs new file mode 100644 index 000000000000..580e235b8cbc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CloudErrorTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CloudError.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CloudError.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CloudError.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.cs new file mode 100644 index 000000000000..0f6b1473f8dd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.cs @@ -0,0 +1,65 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class CloudError : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal + { + + /// Error code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties _error; + + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorProperties()); set => this._error = value; } + + /// Error message indicating why the operation failed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)Error).Message = value ?? null; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorProperties()); set { {_error = value;} } } + + /// Creates an new instance. + public CloudError() + { + + } + } + public partial interface ICloudError : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Error code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Error code", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// Error message indicating why the operation failed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Error message indicating why the operation failed.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + internal partial interface ICloudErrorInternal + + { + /// Error code + string Code { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties Error { get; set; } + /// Error message indicating why the operation failed. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.json.cs new file mode 100644 index 000000000000..b98eb12d2b30 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudError.json.cs @@ -0,0 +1,100 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class CloudError + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal CloudError(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.CloudErrorProperties.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudError FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new CloudError(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.PowerShell.cs new file mode 100644 index 000000000000..a687b4c1f3ea --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(CloudErrorPropertiesTypeConverter))] + public partial class CloudErrorProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CloudErrorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)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 CloudErrorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CloudErrorProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CloudErrorProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(CloudErrorPropertiesTypeConverter))] + public partial interface ICloudErrorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.TypeConverter.cs new file mode 100644 index 000000000000..3be5c6056f33 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CloudErrorPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CloudErrorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CloudErrorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CloudErrorProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.cs new file mode 100644 index 000000000000..9beb9bfc4437 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.cs @@ -0,0 +1,60 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class CloudErrorProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorPropertiesInternal + { + + /// Backing field for property. + private string _code; + + /// Error code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Code { get => this._code; set => this._code = value; } + + /// Backing field for property. + private string _message; + + /// Error message indicating why the operation failed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Creates an new instance. + public CloudErrorProperties() + { + + } + } + public partial interface ICloudErrorProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Error code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Error code", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// Error message indicating why the operation failed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Error message indicating why the operation failed.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + internal partial interface ICloudErrorPropertiesInternal + + { + /// Error code + string Code { get; set; } + /// Error message indicating why the operation failed. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.json.cs new file mode 100644 index 000000000000..5fe9b948d182 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CloudErrorProperties.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class CloudErrorProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal CloudErrorProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_code = If( json?.PropertyT("code"), out var __jsonCode) ? (string)__jsonCode : (string)Code;} + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICloudErrorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new CloudErrorProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.PowerShell.cs new file mode 100644 index 000000000000..361163b00a62 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.PowerShell.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Credentials needed to create the virtual machine. + [System.ComponentModel.TypeConverter(typeof(CredentialsPropertiesTypeConverter))] + public partial class CredentialsProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CredentialsProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("LocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("DomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordSecretName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CredentialsProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("LocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("DomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)this).DomainAdminPasswordSecretName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CredentialsProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CredentialsProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Credentials needed to create the virtual machine. + [System.ComponentModel.TypeConverter(typeof(CredentialsPropertiesTypeConverter))] + public partial interface ICredentialsProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.TypeConverter.cs new file mode 100644 index 000000000000..d9d0b4dc3c83 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CredentialsPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CredentialsProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CredentialsProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CredentialsProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.cs new file mode 100644 index 000000000000..50456d5f89b3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Credentials needed to create the virtual machine. + public partial class CredentialsProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties _domainAdmin; + + /// The domain admin credentials. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties DomainAdmin { get => (this._domainAdmin = this._domainAdmin ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties()); set => this._domainAdmin = value; } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).PasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).PasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).PasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).PasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).UserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)DomainAdmin).UserName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties _localAdmin; + + /// The local admin credentials. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties LocalAdmin { get => (this._localAdmin = this._localAdmin ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties()); set => this._localAdmin = value; } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).PasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).PasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).PasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).PasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).UserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)LocalAdmin).UserName = value ?? null; } + + /// Internal Acessors for DomainAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal.DomainAdmin { get => (this._domainAdmin = this._domainAdmin ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties()); set { {_domainAdmin = value;} } } + + /// Internal Acessors for LocalAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal.LocalAdmin { get => (this._localAdmin = this._localAdmin ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties()); set { {_localAdmin = value;} } } + + /// Creates an new instance. + public CredentialsProperties() + { + + } + } + /// Credentials needed to create the virtual machine. + public partial interface ICredentialsProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminUserName { get; set; } + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminUserName { get; set; } + + } + /// Credentials needed to create the virtual machine. + internal partial interface ICredentialsPropertiesInternal + + { + /// The domain admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties DomainAdmin { get; set; } + /// The keyvault resource id to the keyvault secrets. + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + string DomainAdminUserName { get; set; } + /// The local admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties LocalAdmin { get; set; } + /// The keyvault resource id to the keyvault secrets. + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + string LocalAdminUserName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.json.cs new file mode 100644 index 000000000000..07826e02359c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/CredentialsProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Credentials needed to create the virtual machine. + public partial class CredentialsProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal CredentialsProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_localAdmin = If( json?.PropertyT("localAdmin"), out var __jsonLocalAdmin) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties.FromJson(__jsonLocalAdmin) : LocalAdmin;} + {_domainAdmin = If( json?.PropertyT("domainAdmin"), out var __jsonDomainAdmin) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialProperties.FromJson(__jsonDomainAdmin) : DomainAdmin;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new CredentialsProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._localAdmin ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._localAdmin.ToJson(null,serializationMode) : null, "localAdmin" ,container.Add ); + AddIf( null != this._domainAdmin ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._domainAdmin.ToJson(null,serializationMode) : null, "domainAdmin" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.PowerShell.cs new file mode 100644 index 000000000000..22df780a321e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.PowerShell.cs @@ -0,0 +1,163 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Desktop properties. + [System.ComponentModel.TypeConverter(typeof(DesktopTypeConverter))] + public partial class Desktop + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Desktop(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Desktop(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Desktop(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconContent, i => i); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Desktop(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal)this).IconContent, i => i); + 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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for Desktop properties. + [System.ComponentModel.TypeConverter(typeof(DesktopTypeConverter))] + public partial interface IDesktop + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.TypeConverter.cs new file mode 100644 index 000000000000..2b4987370dba --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Desktop.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Desktop.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Desktop.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.cs new file mode 100644 index 000000000000..efd777c3a701 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.cs @@ -0,0 +1,260 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Desktop properties. + public partial class Desktop : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).Description = value ?? null; } + + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// The icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public byte[] IconContent { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconContent; } + + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IconHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconHash; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for IconContent + byte[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal.IconContent { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconContent; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconContent = value; } + + /// Internal Acessors for IconHash + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal.IconHash { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconHash; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).IconHash = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// ObjectId of Desktop. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)Property).ObjectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties _property; + + /// Detailed properties for Desktop + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Desktop() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Schema for Desktop properties. + public partial interface IDesktop : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// The icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The icon a 64 bit string as a byte array.", + SerializedName = @"iconContent", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] IconContent { get; } + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hash of the icon.", + SerializedName = @"iconHash", + PossibleTypes = new [] { typeof(string) })] + string IconHash { get; } + /// ObjectId of Desktop. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Desktop. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Schema for Desktop properties. + internal partial interface IDesktopInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Description of Desktop. + string Description { get; set; } + /// Friendly name of Desktop. + string FriendlyName { get; set; } + /// The icon a 64 bit string as a byte array. + byte[] IconContent { get; set; } + /// Hash of the icon. + string IconHash { get; set; } + /// ObjectId of Desktop. (internal use) + string ObjectId { get; set; } + /// Detailed properties for Desktop + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties Property { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.json.cs new file mode 100644 index 000000000000..346ae998d970 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Desktop.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Desktop properties. + public partial class Desktop + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Desktop(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Desktop(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.PowerShell.cs new file mode 100644 index 000000000000..54638f0e13ab --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of Desktop definitions. + [System.ComponentModel.TypeConverter(typeof(DesktopListTypeConverter))] + public partial class DesktopList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopList(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)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 DesktopList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of Desktop definitions. + [System.ComponentModel.TypeConverter(typeof(DesktopListTypeConverter))] + public partial interface IDesktopList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.TypeConverter.cs new file mode 100644 index 000000000000..c5a4a3136463 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.cs new file mode 100644 index 000000000000..070a1a12b391 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Desktop definitions. + public partial class DesktopList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[] _value; + + /// List of Desktop definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DesktopList() + { + + } + } + /// List of Desktop definitions. + public partial interface IDesktopList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of Desktop definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Desktop definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[] Value { get; set; } + + } + /// List of Desktop definitions. + internal partial interface IDesktopListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of Desktop definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.json.cs new file mode 100644 index 000000000000..655397cfc516 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Desktop definitions. + public partial class DesktopList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DesktopList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Desktop.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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.PowerShell.cs new file mode 100644 index 000000000000..5572fa4153e1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Desktop properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(DesktopPatchTypeConverter))] + public partial class DesktopPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopPatch(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).FriendlyName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DesktopPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal)this).FriendlyName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Desktop properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(DesktopPatchTypeConverter))] + public partial interface IDesktopPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.TypeConverter.cs new file mode 100644 index 000000000000..6ab9e31addd5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.cs new file mode 100644 index 000000000000..b5f9cad02aaa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.cs @@ -0,0 +1,86 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Desktop properties that can be patched. + public partial class DesktopPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal + { + + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)Property).Description = value ?? null; } + + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties _property; + + /// Detailed properties for Desktop + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTags()); set => this._tag = value; } + + /// Creates an new instance. + public DesktopPatch() + { + + } + } + /// Desktop properties that can be patched. + public partial interface IDesktopPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags Tag { get; set; } + + } + /// Desktop properties that can be patched. + internal partial interface IDesktopPatchInternal + + { + /// Description of Desktop. + string Description { get; set; } + /// Friendly name of Desktop. + string FriendlyName { get; set; } + /// Detailed properties for Desktop + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties Property { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.json.cs new file mode 100644 index 000000000000..1687794e98dc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Desktop properties that can be patched. + public partial class DesktopPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DesktopPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopPatch(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..d5cfc10ba440 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Desktop properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(DesktopPatchPropertiesTypeConverter))] + public partial class DesktopPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopPatchProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DesktopPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal)this).FriendlyName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Desktop properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(DesktopPatchPropertiesTypeConverter))] + public partial interface IDesktopPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..86c6f4e36fbd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.cs new file mode 100644 index 000000000000..a45ebc877f4c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Desktop properties that can be patched. + public partial class DesktopPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Creates an new instance. + public DesktopPatchProperties() + { + + } + } + /// Desktop properties that can be patched. + public partial interface IDesktopPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + + } + /// Desktop properties that can be patched. + internal partial interface IDesktopPatchPropertiesInternal + + { + /// Description of Desktop. + string Description { get; set; } + /// Friendly name of Desktop. + string FriendlyName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.json.cs new file mode 100644 index 000000000000..18ec7a22a6aa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Desktop properties that can be patched. + public partial class DesktopPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DesktopPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopPatchProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.PowerShell.cs new file mode 100644 index 000000000000..cce4dbb78cc2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(DesktopPatchTagsTypeConverter))] + public partial class DesktopPatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopPatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopPatchTags(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopPatchTags(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 DesktopPatchTags(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); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(DesktopPatchTagsTypeConverter))] + public partial interface IDesktopPatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.TypeConverter.cs new file mode 100644 index 000000000000..ef9c17fd5c87 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopPatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopPatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopPatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopPatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.cs new file mode 100644 index 000000000000..9f9720188c14 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class DesktopPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTagsInternal + { + + /// Creates an new instance. + public DesktopPatchTags() + { + + } + } + /// tags to be updated + public partial interface IDesktopPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IDesktopPatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.dictionary.cs new file mode 100644 index 000000000000..e495817570d3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class DesktopPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.json.cs new file mode 100644 index 000000000000..7442708ee670 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopPatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class DesktopPatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal DesktopPatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopPatchTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.PowerShell.cs new file mode 100644 index 000000000000..b61f9585cfbb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.PowerShell.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Desktop properties. + [System.ComponentModel.TypeConverter(typeof(DesktopPropertiesTypeConverter))] + public partial class DesktopProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconContent, i => i); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DesktopProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconHash = (string) content.GetValueForProperty("IconHash",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconHash, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconContent = (byte[]) content.GetValueForProperty("IconContent",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal)this).IconContent, i => i); + 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.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for Desktop properties. + [System.ComponentModel.TypeConverter(typeof(DesktopPropertiesTypeConverter))] + public partial interface IDesktopProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.TypeConverter.cs new file mode 100644 index 000000000000..0b71d07d5e80 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.cs new file mode 100644 index 000000000000..8a7d0a0d4984 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.cs @@ -0,0 +1,123 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Desktop properties. + public partial class DesktopProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private byte[] _iconContent; + + /// The icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public byte[] IconContent { get => this._iconContent; } + + /// Backing field for property. + private string _iconHash; + + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconHash { get => this._iconHash; } + + /// Internal Acessors for IconContent + byte[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal.IconContent { get => this._iconContent; set { {_iconContent = value;} } } + + /// Internal Acessors for IconHash + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal.IconHash { get => this._iconHash; set { {_iconHash = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of Desktop. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Creates an new instance. + public DesktopProperties() + { + + } + } + /// Schema for Desktop properties. + public partial interface IDesktopProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// The icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The icon a 64 bit string as a byte array.", + SerializedName = @"iconContent", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] IconContent { get; } + /// Hash of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Hash of the icon.", + SerializedName = @"iconHash", + PossibleTypes = new [] { typeof(string) })] + string IconHash { get; } + /// ObjectId of Desktop. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Desktop. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + + } + /// Schema for Desktop properties. + internal partial interface IDesktopPropertiesInternal + + { + /// Description of Desktop. + string Description { get; set; } + /// Friendly name of Desktop. + string FriendlyName { get; set; } + /// The icon a 64 bit string as a byte array. + byte[] IconContent { get; set; } + /// Hash of the icon. + string IconHash { get; set; } + /// ObjectId of Desktop. (internal use) + string ObjectId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.json.cs new file mode 100644 index 000000000000..f8d0bb042b34 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DesktopProperties.json.cs @@ -0,0 +1,118 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Desktop properties. + public partial class DesktopProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DesktopProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_iconHash = If( json?.PropertyT("iconHash"), out var __jsonIconHash) ? (string)__jsonIconHash : (string)IconHash;} + {_iconContent = If( json?.PropertyT("iconContent"), out var __w) ? System.Convert.FromBase64String( ((string)__w).Replace("_","/").Replace("-","+").PadRight( ((string)__w).Length + ((string)__w).Length * 3 % 4, '=') ) : null;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._iconHash)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconHash.ToString()) : null, "iconHash" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._iconContent ? global::System.Convert.ToBase64String( this._iconContent) : null ,(v)=> container.Add( "iconContent",v) ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.PowerShell.cs new file mode 100644 index 000000000000..22e95ae64b62 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.PowerShell.cs @@ -0,0 +1,155 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Domain configurations of session hosts. + [System.ComponentModel.TypeConverter(typeof(DomainInfoPropertiesTypeConverter))] + public partial class DomainInfoProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainInfoProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainInfoProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainInfoProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Credentials = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties) content.GetValueForProperty("Credentials",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Credentials, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).JoinType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType?) content.GetValueForProperty("JoinType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).JoinType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).MdmProviderGuid = (string) content.GetValueForProperty("MdmProviderGuid",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).MdmProviderGuid, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsLocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsLocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsLocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsDomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsDomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsDomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordSecretName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainInfoProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Credentials = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties) content.GetValueForProperty("Credentials",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Credentials, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).JoinType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType?) content.GetValueForProperty("JoinType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).JoinType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).MdmProviderGuid = (string) content.GetValueForProperty("MdmProviderGuid",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).MdmProviderGuid, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsLocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsLocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsLocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsDomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsDomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).CredentialsDomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)this).DomainAdminPasswordSecretName, 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.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Domain configurations of session hosts. + [System.ComponentModel.TypeConverter(typeof(DomainInfoPropertiesTypeConverter))] + public partial interface IDomainInfoProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.TypeConverter.cs new file mode 100644 index 000000000000..d8a9cd1aa78f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainInfoPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainInfoProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainInfoProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainInfoProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.cs new file mode 100644 index 000000000000..41df3efd1f79 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.cs @@ -0,0 +1,192 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Domain configurations of session hosts. + public partial class DomainInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties _credentials; + + /// Credentials needed to create the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties Credentials { get => (this._credentials = this._credentials ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsProperties()); set => this._credentials = value; } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminPasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminPasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminPasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminPasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdminUserName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? _joinType; + + /// The type of domain join done by the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? JoinType { get => this._joinType; set => this._joinType = value; } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminPasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminPasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminPasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminPasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdminUserName = value ?? null; } + + /// Backing field for property. + private string _mdmProviderGuid; + + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MdmProviderGuid { get => this._mdmProviderGuid; set => this._mdmProviderGuid = value; } + + /// Internal Acessors for Credentials + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal.Credentials { get => (this._credentials = this._credentials ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsProperties()); set { {_credentials = value;} } } + + /// Internal Acessors for CredentialsDomainAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal.CredentialsDomainAdmin { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdmin; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).DomainAdmin = value; } + + /// Internal Acessors for CredentialsLocalAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal.CredentialsLocalAdmin { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdmin; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsPropertiesInternal)Credentials).LocalAdmin = value; } + + /// Backing field for property. + private string _name; + + /// The domain a virtual machine connected to a hostpool will join. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public DomainInfoProperties() + { + + } + } + /// Domain configurations of session hosts. + public partial interface IDomainInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminUserName { get; set; } + /// The type of domain join done by the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of domain join done by the virtual machine.", + SerializedName = @"joinType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? JoinType { get; set; } + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminUserName { get; set; } + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines.", + SerializedName = @"mdmProviderGuid", + PossibleTypes = new [] { typeof(string) })] + string MdmProviderGuid { get; set; } + /// The domain a virtual machine connected to a hostpool will join. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The domain a virtual machine connected to a hostpool will join.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Domain configurations of session hosts. + internal partial interface IDomainInfoPropertiesInternal + + { + /// Credentials needed to create the virtual machine. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties Credentials { get; set; } + /// The domain admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties CredentialsDomainAdmin { get; set; } + /// The local admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties CredentialsLocalAdmin { get; set; } + /// The keyvault resource id to the keyvault secrets. + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + string DomainAdminUserName { get; set; } + /// The type of domain join done by the virtual machine. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? JoinType { get; set; } + /// The keyvault resource id to the keyvault secrets. + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + string LocalAdminUserName { get; set; } + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + string MdmProviderGuid { get; set; } + /// The domain a virtual machine connected to a hostpool will join. + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.json.cs new file mode 100644 index 000000000000..b976c8d11fb5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/DomainInfoProperties.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Domain configurations of session hosts. + public partial class DomainInfoProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DomainInfoProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_credentials = If( json?.PropertyT("credentials"), out var __jsonCredentials) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsProperties.FromJson(__jsonCredentials) : Credentials;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_joinType = If( json?.PropertyT("joinType"), out var __jsonJoinType) ? (string)__jsonJoinType : (string)JoinType;} + {_mdmProviderGuid = If( json?.PropertyT("mdmProviderGuid"), out var __jsonMdmProviderGuid) ? (string)__jsonMdmProviderGuid : (string)MdmProviderGuid;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DomainInfoProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._credentials ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._credentials.ToJson(null,serializationMode) : null, "credentials" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._joinType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._joinType.ToString()) : null, "joinType" ,container.Add ); + AddIf( null != (((object)this._mdmProviderGuid)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._mdmProviderGuid.ToString()) : null, "mdmProviderGuid" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.PowerShell.cs new file mode 100644 index 000000000000..6f8e5b6d0b21 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.PowerShell.cs @@ -0,0 +1,167 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// Represents the definition of contents retrieved after expanding the MSIX Image. + /// + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImageTypeConverter))] + public partial class ExpandMsixImage + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExpandMsixImage(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExpandMsixImage(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExpandMsixImage(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImagePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageAlias = (string) content.GetValueForProperty("PackageAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFullName = (string) content.GetValueForProperty("PackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ExpandMsixImage(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImagePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageAlias = (string) content.GetValueForProperty("PackageAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFullName = (string) content.GetValueForProperty("PackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.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.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents the definition of contents retrieved after expanding the MSIX Image. + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImageTypeConverter))] + public partial interface IExpandMsixImage + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.TypeConverter.cs new file mode 100644 index 000000000000..dd0331968b6a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExpandMsixImageTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExpandMsixImage.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExpandMsixImage.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExpandMsixImage.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.cs new file mode 100644 index 000000000000..53203251b9be --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.cs @@ -0,0 +1,275 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Represents the definition of contents retrieved after expanding the MSIX Image. + /// + public partial class ExpandMsixImage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).DisplayName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ImagePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).ImagePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).ImagePath = value ?? null; } + + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsActive { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).IsActive; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).IsActive = value ?? default(bool); } + + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsRegularRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).IsRegularRegistration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).IsRegularRegistration = value ?? default(bool); } + + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastUpdated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).LastUpdated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).LastUpdated = value ?? default(global::System.DateTime); } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageProperties()); set { {_property = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Alias of MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageAlias { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageAlias; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageAlias = value ?? null; } + + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageApplication = value ?? null /* arrayOf */; } + + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageDependency; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageDependency = value ?? null /* arrayOf */; } + + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageFamilyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageFamilyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageFamilyName = value ?? null; } + + /// Package Full Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageFullName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageFullName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageFullName = value ?? null; } + + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageName = value ?? null; } + + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageRelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageRelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).PackageRelativePath = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties _property; + + /// Detailed properties for ExpandMsixImage + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageProperties()); set => this._property = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)Property).Version = value ?? null; } + + /// Creates an new instance. + public ExpandMsixImage() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Represents the definition of contents retrieved after expanding the MSIX Image. + public partial interface IExpandMsixImage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly Name to be displayed in the portal. ", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VHD/CIM image path on Network Share.", + SerializedName = @"imagePath", + PossibleTypes = new [] { typeof(string) })] + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Make this version of the package the active one across the hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies how to register Package in feed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Date Package was last updated, found in the appxmanifest.xml. ", + SerializedName = @"lastUpdated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdated { get; set; } + /// Alias of MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alias of MSIX Package.", + SerializedName = @"packageAlias", + PossibleTypes = new [] { typeof(string) })] + string PackageAlias { get; set; } + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package applications. ", + SerializedName = @"packageApplications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package dependencies. ", + SerializedName = @"packageDependencies", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ", + SerializedName = @"packageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string PackageFamilyName { get; set; } + /// Package Full Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Full Name from appxmanifest.xml. ", + SerializedName = @"packageFullName", + PossibleTypes = new [] { typeof(string) })] + string PackageFullName { get; set; } + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Name from appxmanifest.xml. ", + SerializedName = @"packageName", + PossibleTypes = new [] { typeof(string) })] + string PackageName { get; set; } + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative Path to the package inside the image. ", + SerializedName = @"packageRelativePath", + PossibleTypes = new [] { typeof(string) })] + string PackageRelativePath { get; set; } + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Version found in the appxmanifest.xml. ", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Represents the definition of contents retrieved after expanding the MSIX Image. + internal partial interface IExpandMsixImageInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// User friendly Name to be displayed in the portal. + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + global::System.DateTime? LastUpdated { get; set; } + /// Alias of MSIX Package. + string PackageAlias { get; set; } + /// List of package applications. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + string PackageFamilyName { get; set; } + /// Package Full Name from appxmanifest.xml. + string PackageFullName { get; set; } + /// Package Name from appxmanifest.xml. + string PackageName { get; set; } + /// Relative Path to the package inside the image. + string PackageRelativePath { get; set; } + /// Detailed properties for ExpandMsixImage + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties Property { get; set; } + /// Package Version found in the appxmanifest.xml. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.json.cs new file mode 100644 index 000000000000..632fddb5286d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImage.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Represents the definition of contents retrieved after expanding the MSIX Image. + /// + public partial class ExpandMsixImage + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ExpandMsixImage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ExpandMsixImage(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.PowerShell.cs new file mode 100644 index 000000000000..31725d41954f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of MSIX package properties retrieved from MSIX Image expansion. + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImageListTypeConverter))] + public partial class ExpandMsixImageList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExpandMsixImageList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExpandMsixImageList(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExpandMsixImageList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)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 ExpandMsixImageList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImageTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal)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.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of MSIX package properties retrieved from MSIX Image expansion. + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImageListTypeConverter))] + public partial interface IExpandMsixImageList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.TypeConverter.cs new file mode 100644 index 000000000000..44cce8b18d00 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExpandMsixImageListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExpandMsixImageList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExpandMsixImageList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExpandMsixImageList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.cs new file mode 100644 index 000000000000..f083d19bf985 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of MSIX package properties retrieved from MSIX Image expansion. + public partial class ExpandMsixImageList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[] _value; + + /// List of MSIX package properties from give MSIX Image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ExpandMsixImageList() + { + + } + } + /// List of MSIX package properties retrieved from MSIX Image expansion. + public partial interface IExpandMsixImageList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of MSIX package properties from give MSIX Image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of MSIX package properties from give MSIX Image.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[] Value { get; set; } + + } + /// List of MSIX package properties retrieved from MSIX Image expansion. + internal partial interface IExpandMsixImageListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of MSIX package properties from give MSIX Image. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.json.cs new file mode 100644 index 000000000000..b5d3f813f8d9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of MSIX package properties retrieved from MSIX Image expansion. + public partial class ExpandMsixImageList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ExpandMsixImageList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ExpandMsixImage.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.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ExpandMsixImageList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.PowerShell.cs new file mode 100644 index 000000000000..9848e319def7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.PowerShell.cs @@ -0,0 +1,157 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Expand MSIX Image properties. + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImagePropertiesTypeConverter))] + public partial class ExpandMsixImageProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExpandMsixImageProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExpandMsixImageProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExpandMsixImageProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageAlias = (string) content.GetValueForProperty("PackageAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFullName = (string) content.GetValueForProperty("PackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ExpandMsixImageProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageAlias = (string) content.GetValueForProperty("PackageAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFullName = (string) content.GetValueForProperty("PackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.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.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for Expand MSIX Image properties. + [System.ComponentModel.TypeConverter(typeof(ExpandMsixImagePropertiesTypeConverter))] + public partial interface IExpandMsixImageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.TypeConverter.cs new file mode 100644 index 000000000000..2f9010ee6ebc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExpandMsixImagePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExpandMsixImageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExpandMsixImageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExpandMsixImageProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.cs new file mode 100644 index 000000000000..55e9a02d4f13 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.cs @@ -0,0 +1,256 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Expand MSIX Image properties. + public partial class ExpandMsixImageProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImagePropertiesInternal + { + + /// Backing field for property. + private string _displayName; + + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _imagePath; + + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ImagePath { get => this._imagePath; set => this._imagePath = value; } + + /// Backing field for property. + private bool? _isActive; + + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsActive { get => this._isActive; set => this._isActive = value; } + + /// Backing field for property. + private bool? _isRegularRegistration; + + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsRegularRegistration { get => this._isRegularRegistration; set => this._isRegularRegistration = value; } + + /// Backing field for property. + private global::System.DateTime? _lastUpdated; + + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastUpdated { get => this._lastUpdated; set => this._lastUpdated = value; } + + /// Backing field for property. + private string _packageAlias; + + /// Alias of MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageAlias { get => this._packageAlias; set => this._packageAlias = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] _packageApplication; + + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get => this._packageApplication; set => this._packageApplication = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] _packageDependency; + + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get => this._packageDependency; set => this._packageDependency = value; } + + /// Backing field for property. + private string _packageFamilyName; + + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageFamilyName { get => this._packageFamilyName; set => this._packageFamilyName = value; } + + /// Backing field for property. + private string _packageFullName; + + /// Package Full Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageFullName { get => this._packageFullName; set => this._packageFullName = value; } + + /// Backing field for property. + private string _packageName; + + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageName { get => this._packageName; set => this._packageName = value; } + + /// Backing field for property. + private string _packageRelativePath; + + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageRelativePath { get => this._packageRelativePath; set => this._packageRelativePath = value; } + + /// Backing field for property. + private string _version; + + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public ExpandMsixImageProperties() + { + + } + } + /// Schema for Expand MSIX Image properties. + public partial interface IExpandMsixImageProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly Name to be displayed in the portal. ", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VHD/CIM image path on Network Share.", + SerializedName = @"imagePath", + PossibleTypes = new [] { typeof(string) })] + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Make this version of the package the active one across the hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies how to register Package in feed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Date Package was last updated, found in the appxmanifest.xml. ", + SerializedName = @"lastUpdated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdated { get; set; } + /// Alias of MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alias of MSIX Package.", + SerializedName = @"packageAlias", + PossibleTypes = new [] { typeof(string) })] + string PackageAlias { get; set; } + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package applications. ", + SerializedName = @"packageApplications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package dependencies. ", + SerializedName = @"packageDependencies", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ", + SerializedName = @"packageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string PackageFamilyName { get; set; } + /// Package Full Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Full Name from appxmanifest.xml. ", + SerializedName = @"packageFullName", + PossibleTypes = new [] { typeof(string) })] + string PackageFullName { get; set; } + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Name from appxmanifest.xml. ", + SerializedName = @"packageName", + PossibleTypes = new [] { typeof(string) })] + string PackageName { get; set; } + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative Path to the package inside the image. ", + SerializedName = @"packageRelativePath", + PossibleTypes = new [] { typeof(string) })] + string PackageRelativePath { get; set; } + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Version found in the appxmanifest.xml. ", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Schema for Expand MSIX Image properties. + internal partial interface IExpandMsixImagePropertiesInternal + + { + /// User friendly Name to be displayed in the portal. + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + global::System.DateTime? LastUpdated { get; set; } + /// Alias of MSIX Package. + string PackageAlias { get; set; } + /// List of package applications. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + string PackageFamilyName { get; set; } + /// Package Full Name from appxmanifest.xml. + string PackageFullName { get; set; } + /// Package Name from appxmanifest.xml. + string PackageName { get; set; } + /// Relative Path to the package inside the image. + string PackageRelativePath { get; set; } + /// Package Version found in the appxmanifest.xml. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.json.cs new file mode 100644 index 000000000000..722b890cbcf8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ExpandMsixImageProperties.json.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Expand MSIX Image properties. + public partial class ExpandMsixImageProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ExpandMsixImageProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_packageAlias = If( json?.PropertyT("packageAlias"), out var __jsonPackageAlias) ? (string)__jsonPackageAlias : (string)PackageAlias;} + {_imagePath = If( json?.PropertyT("imagePath"), out var __jsonImagePath) ? (string)__jsonImagePath : (string)ImagePath;} + {_packageName = If( json?.PropertyT("packageName"), out var __jsonPackageName) ? (string)__jsonPackageName : (string)PackageName;} + {_packageFamilyName = If( json?.PropertyT("packageFamilyName"), out var __jsonPackageFamilyName) ? (string)__jsonPackageFamilyName : (string)PackageFamilyName;} + {_packageFullName = If( json?.PropertyT("packageFullName"), out var __jsonPackageFullName) ? (string)__jsonPackageFullName : (string)PackageFullName;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_packageRelativePath = If( json?.PropertyT("packageRelativePath"), out var __jsonPackageRelativePath) ? (string)__jsonPackageRelativePath : (string)PackageRelativePath;} + {_isRegularRegistration = If( json?.PropertyT("isRegularRegistration"), out var __jsonIsRegularRegistration) ? (bool?)__jsonIsRegularRegistration : IsRegularRegistration;} + {_isActive = If( json?.PropertyT("isActive"), out var __jsonIsActive) ? (bool?)__jsonIsActive : IsActive;} + {_packageDependency = If( json?.PropertyT("packageDependencies"), out var __jsonPackageDependencies) ? If( __jsonPackageDependencies as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependencies.FromJson(__u) )) ))() : null : PackageDependency;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_lastUpdated = If( json?.PropertyT("lastUpdated"), out var __jsonLastUpdated) ? global::System.DateTime.TryParse((string)__jsonLastUpdated, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastUpdatedValue) ? __jsonLastUpdatedValue : LastUpdated : LastUpdated;} + {_packageApplication = If( json?.PropertyT("packageApplications"), out var __jsonPackageApplications) ? If( __jsonPackageApplications as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplications.FromJson(__p) )) ))() : null : PackageApplication;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ExpandMsixImageProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._packageAlias)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageAlias.ToString()) : null, "packageAlias" ,container.Add ); + AddIf( null != (((object)this._imagePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._imagePath.ToString()) : null, "imagePath" ,container.Add ); + AddIf( null != (((object)this._packageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageName.ToString()) : null, "packageName" ,container.Add ); + AddIf( null != (((object)this._packageFamilyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageFamilyName.ToString()) : null, "packageFamilyName" ,container.Add ); + AddIf( null != (((object)this._packageFullName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageFullName.ToString()) : null, "packageFullName" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._packageRelativePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageRelativePath.ToString()) : null, "packageRelativePath" ,container.Add ); + AddIf( null != this._isRegularRegistration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isRegularRegistration) : null, "isRegularRegistration" ,container.Add ); + AddIf( null != this._isActive ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isActive) : null, "isActive" ,container.Add ); + if (null != this._packageDependency) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._packageDependency ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("packageDependencies",__w); + } + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AddIf( null != this._lastUpdated ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastUpdated?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastUpdated" ,container.Add ); + if (null != this._packageApplication) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._packageApplication ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("packageApplications",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.PowerShell.cs new file mode 100644 index 000000000000..fdbffd1e9f2a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.PowerShell.cs @@ -0,0 +1,273 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a HostPool definition. + [System.ComponentModel.TypeConverter(typeof(HostPoolTypeConverter))] + public partial class HostPool + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPool(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPool(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPool(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoToken = (string) content.GetValueForProperty("RegistrationInfoToken",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoToken, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowDaysOfWeek, __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 HostPool(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoToken = (string) content.GetValueForProperty("RegistrationInfoToken",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoToken, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal)this).SecondaryWindowDaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a HostPool definition. + [System.ComponentModel.TypeConverter(typeof(HostPoolTypeConverter))] + public partial interface IHostPool + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.TypeConverter.cs new file mode 100644 index 000000000000..c5fd0ccd098f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPool.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPool.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPool.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.cs new file mode 100644 index 000000000000..e6d6639fb062 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.cs @@ -0,0 +1,846 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a HostPool definition. + public partial class HostPool : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(); + + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] ApplicationGroupReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ApplicationGroupReference; } + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).CloudPcResource; } + + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CustomRdpProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).CustomRdpProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).CustomRdpProperty = value ?? null; } + + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).Description = value ?? null; } + + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; } + + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).HostPoolType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).HostPoolType = value ; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; } + + /// Identity for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity = value ?? null /* model class */; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind = value ?? null; } + + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).LoadBalancerType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).LoadBalancerType = value ; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location = value ?? null; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string ManagedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy = value ?? null; } + + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MaxSessionLimit { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MaxSessionLimit; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MaxSessionLimit = value ?? default(int); } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id = value; } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type = value; } + + /// Internal Acessors for ApplicationGroupReference + string[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.ApplicationGroupReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ApplicationGroupReference; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ApplicationGroupReference = value; } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).CloudPcResource; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).CloudPcResource = value; } + + /// Internal Acessors for MigrationRequest + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.MigrationRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequest = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolProperties()); set { {_property = value;} } } + + /// Internal Acessors for RegistrationInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.RegistrationInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfo = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.SessionHostComponentUpdateConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfiguration = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationPrimaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.SessionHostComponentUpdateConfigurationPrimaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationPrimaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationPrimaryWindow = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationSecondaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.SessionHostComponentUpdateConfigurationSecondaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationSecondaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationSecondaryWindow = value; } + + /// Internal Acessors for SessionHostConfigurationLastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.SessionHostConfigurationLastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MigrationRequestMigrationPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequestMigrationPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequestMigrationPath = value ?? null; } + + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequestOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).MigrationRequestOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; } + + /// ObjectId of HostPool. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ObjectId; } + + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PersonalDesktopAssignmentType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PersonalDesktopAssignmentType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType)""); } + + /// Plan for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan = value ?? null /* model class */; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName = value ?? null; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct = value ?? null; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher = value ?? null; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion = value ?? null; } + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PreferredAppGroupType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PreferredAppGroupType = value ; } + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PrimaryWindowDayOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PrimaryWindowDayOfWeek = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? PrimaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PrimaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PrimaryWindowHour = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties _property; + + /// Detailed properties for HostPool + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolProperties()); set => this._property = value; } + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); } + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? RegistrationInfoExpirationTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoExpirationTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoExpirationTime = value ?? default(global::System.DateTime); } + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoRegistrationTokenOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoRegistrationTokenOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); } + + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string RegistrationInfoToken { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoToken; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).RegistrationInfoToken = value ?? null; } + + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? Ring { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).Ring; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).Ring = value ?? default(int); } + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] SecondaryWindowDaysOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SecondaryWindowDaysOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SecondaryWindowDaysOfWeek = value ?? null /* arrayOf */; } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SecondaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SecondaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SecondaryWindowHour = value ?? default(int); } + + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = value ?? null; } + + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = value ?? default(bool); } + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostConfiguration = value ?? null /* model class */; } + + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SessionHostConfigurationLastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime; } + + /// The resource model definition representing SKU + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku = value ?? null /* model class */; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuFamily { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName = value ?? null; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoClientId = value ?? null; } + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoClientSecretKeyVaultPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoClientSecretKeyVaultPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoClientSecretKeyVaultPath = value ?? null; } + + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoSecretType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoSecretType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType)""); } + + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoadfsAuthority { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoadfsAuthority; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).SsoadfsAuthority = value ?? null; } + + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? StartVMOnConnect { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).StartVMOnConnect; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).StartVMOnConnect = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; } + + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string VMTemplate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).VMTemplate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).VMTemplate = value ?? null; } + + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? ValidationEnvironment { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ValidationEnvironment; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)Property).ValidationEnvironment = value ?? default(bool); } + + /// Creates an new instance. + public HostPool() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + await eventListener.AssertObjectIsValid(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + } + } + /// Represents a HostPool definition. + public partial interface IHostPool : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet + { + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + string CustomRdpProperty { get; set; } + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get; set; } + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get; set; } + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + int? MaxSessionLimit { get; set; } + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of HostPool. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of HostPool. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get; set; } + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? PrimaryWindowHour { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The registration token base64 encoded string.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string RegistrationInfoToken { get; set; } + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? SecondaryWindowHour { get; set; } + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(bool) })] + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"This time will match the time in the SHC for when the update was initiated.", + SerializedName = @"sessionHostConfigurationLastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(bool) })] + bool? StartVMOnConnect { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + string VMTemplate { get; set; } + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidationEnvironment { get; set; } + + } + /// Represents a HostPool definition. + internal partial interface IHostPoolInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal + { + /// List of applicationGroup links. + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Custom rdp property of HostPool. + string CustomRdpProperty { get; set; } + /// Description of HostPool. + string Description { get; set; } + /// Friendly name of HostPool. + string FriendlyName { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get; set; } + /// The type of the load balancer. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get; set; } + /// The max session limit of HostPool. + int? MaxSessionLimit { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get; set; } + /// The path to the legacy object to migrate. + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of HostPool. (internal use) + string ObjectId { get; set; } + /// PersonalDesktopAssignment type for HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get; set; } + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? PrimaryWindowHour { get; set; } + /// Detailed properties for HostPool + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties Property { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo RegistrationInfo { get; set; } + /// Expiration time of registration token. + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + string RegistrationInfoToken { get; set; } + /// The ring number of HostPool. + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? SecondaryWindowHour { get; set; } + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get; set; } + /// The type of maintenance for session host components. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties SessionHostComponentUpdateConfigurationPrimaryWindow { get; set; } + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SessionHostComponentUpdateConfigurationSecondaryWindow { get; set; } + /// Whether to use localTime of the virtual machine. + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + bool? StartVMOnConnect { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// VM template for sessionhosts configuration within hostpool. + string VMTemplate { get; set; } + /// Is validation environment. + bool? ValidationEnvironment { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.json.cs new file mode 100644 index 000000000000..52dcccae7aa6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPool.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a HostPool definition. + public partial class HostPool + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPool(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPool(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resourceModelWithAllowedPropertySet?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.PowerShell.cs new file mode 100644 index 000000000000..c4fdad120e19 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents properties for a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolControlParameterTypeConverter))] + public partial class HostPoolControlParameter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolControlParameter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolControlParameter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolControlParameter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameterInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction?) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameterInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolControlParameter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameterInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction?) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameterInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents properties for a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolControlParameterTypeConverter))] + public partial interface IHostPoolControlParameter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.TypeConverter.cs new file mode 100644 index 000000000000..c88205ec0639 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolControlParameterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolControlParameter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolControlParameter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolControlParameter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.cs new file mode 100644 index 000000000000..c8af0c0f42d8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents properties for a hostpool update. + public partial class HostPoolControlParameter : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameterInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction? _action; + + /// Action types for controlling hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction? Action { get => this._action; set => this._action = value; } + + /// Creates an new instance. + public HostPoolControlParameter() + { + + } + } + /// Represents properties for a hostpool update. + public partial interface IHostPoolControlParameter : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Action types for controlling hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Action types for controlling hostpool update.", + SerializedName = @"action", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction? Action { get; set; } + + } + /// Represents properties for a hostpool update. + internal partial interface IHostPoolControlParameterInternal + + { + /// Action types for controlling hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction? Action { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.json.cs new file mode 100644 index 000000000000..125bc374e966 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolControlParameter.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents properties for a hostpool update. + public partial class HostPoolControlParameter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolControlParameter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolControlParameter(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._action)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.PowerShell.cs new file mode 100644 index 000000000000..cccc139100c1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of HostPool definitions. + [System.ComponentModel.TypeConverter(typeof(HostPoolListTypeConverter))] + public partial class HostPoolList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)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 HostPoolList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of HostPool definitions. + [System.ComponentModel.TypeConverter(typeof(HostPoolListTypeConverter))] + public partial interface IHostPoolList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.TypeConverter.cs new file mode 100644 index 000000000000..fc0f68217e2b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.cs new file mode 100644 index 000000000000..0e8a6ef6a633 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of HostPool definitions. + public partial class HostPoolList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[] _value; + + /// List of HostPool definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public HostPoolList() + { + + } + } + /// List of HostPool definitions. + public partial interface IHostPoolList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of HostPool definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of HostPool definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[] Value { get; set; } + + } + /// List of HostPool definitions. + internal partial interface IHostPoolListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of HostPool definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.json.cs new file mode 100644 index 000000000000..541b60735503 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of HostPool definitions. + public partial class HostPoolList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.PowerShell.cs new file mode 100644 index 000000000000..6b23e5474bfa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.PowerShell.cs @@ -0,0 +1,201 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// HostPool properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchTypeConverter))] + public partial class HostPoolPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatchTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType?) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType?) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowDaysOfWeek, __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 HostPoolPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatchTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType?) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType?) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal)this).SecondaryWindowDaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// HostPool properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchTypeConverter))] + public partial interface IHostPoolPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.TypeConverter.cs new file mode 100644 index 000000000000..d24fea673230 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.cs new file mode 100644 index 000000000000..975adf598110 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.cs @@ -0,0 +1,509 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// HostPool properties that can be patched. + public partial class HostPoolPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CustomRdpProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).CustomRdpProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).CustomRdpProperty = value ?? null; } + + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).Description = value ?? null; } + + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).LoadBalancerType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).LoadBalancerType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType)""); } + + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MaxSessionLimit { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).MaxSessionLimit; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).MaxSessionLimit = value ?? default(int); } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchProperties()); set { {_property = value;} } } + + /// Internal Acessors for RegistrationInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal.RegistrationInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfo = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal.SessionHostComponentUpdateConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfiguration = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationPrimaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal.SessionHostComponentUpdateConfigurationPrimaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationPrimaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationPrimaryWindow = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationSecondaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchInternal.SessionHostComponentUpdateConfigurationSecondaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationSecondaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationSecondaryWindow = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PersonalDesktopAssignmentType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PersonalDesktopAssignmentType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType)""); } + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PreferredAppGroupType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PreferredAppGroupType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType)""); } + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PrimaryWindowDayOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PrimaryWindowDayOfWeek = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? PrimaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PrimaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PrimaryWindowHour = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties _property; + + /// HostPool properties that can be patched. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchProperties()); set => this._property = value; } + + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); } + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? RegistrationInfoExpirationTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfoExpirationTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfoExpirationTime = value ?? default(global::System.DateTime); } + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfoRegistrationTokenOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).RegistrationInfoRegistrationTokenOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); } + + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? Ring { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).Ring; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).Ring = value ?? default(int); } + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] SecondaryWindowDaysOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SecondaryWindowDaysOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SecondaryWindowDaysOfWeek = value ?? null /* arrayOf */; } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SecondaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SecondaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SecondaryWindowHour = value ?? default(int); } + + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = value ?? null; } + + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = value ?? default(bool); } + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SessionHostConfiguration = value ?? null /* model class */; } + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoClientId = value ?? null; } + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoClientSecretKeyVaultPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoClientSecretKeyVaultPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoClientSecretKeyVaultPath = value ?? null; } + + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoSecretType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoSecretType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType)""); } + + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SsoadfsAuthority { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoadfsAuthority; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).SsoadfsAuthority = value ?? null; } + + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? StartVMOnConnect { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).StartVMOnConnect; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).StartVMOnConnect = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTags()); set => this._tag = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string VMTemplate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).VMTemplate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).VMTemplate = value ?? null; } + + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? ValidationEnvironment { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).ValidationEnvironment; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)Property).ValidationEnvironment = value ?? default(bool); } + + /// Creates an new instance. + public HostPoolPatch() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// HostPool properties that can be patched. + public partial interface IHostPoolPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + string CustomRdpProperty { get; set; } + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get; set; } + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + int? MaxSessionLimit { get; set; } + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get; set; } + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? PrimaryWindowHour { get; set; } + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? SecondaryWindowHour { get; set; } + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(bool) })] + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(bool) })] + bool? StartVMOnConnect { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags Tag { get; set; } + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + string VMTemplate { get; set; } + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidationEnvironment { get; set; } + + } + /// HostPool properties that can be patched. + internal partial interface IHostPoolPatchInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Custom rdp property of HostPool. + string CustomRdpProperty { get; set; } + /// Description of HostPool. + string Description { get; set; } + /// Friendly name of HostPool. + string FriendlyName { get; set; } + /// The type of the load balancer. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get; set; } + /// The max session limit of HostPool. + int? MaxSessionLimit { get; set; } + /// PersonalDesktopAssignment type for HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get; set; } + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? PrimaryWindowHour { get; set; } + /// HostPool properties that can be patched. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties Property { get; set; } + /// Enabled to allow this resource to be access from the public network + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch RegistrationInfo { get; set; } + /// Expiration time of registration token. + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The ring number of HostPool. + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? SecondaryWindowHour { get; set; } + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get; set; } + /// The type of maintenance for session host components. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties SessionHostComponentUpdateConfigurationPrimaryWindow { get; set; } + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SessionHostComponentUpdateConfigurationSecondaryWindow { get; set; } + /// Whether to use localTime of the virtual machine. + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + bool? StartVMOnConnect { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags Tag { get; set; } + /// VM template for sessionhosts configuration within hostpool. + string VMTemplate { get; set; } + /// Is validation environment. + bool? ValidationEnvironment { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.json.cs new file mode 100644 index 000000000000..4ed1d7a798cc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatch.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// HostPool properties that can be patched. + public partial class HostPoolPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolPatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTags.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..275d7d7390df --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.PowerShell.cs @@ -0,0 +1,191 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of HostPool. + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchPropertiesTypeConverter))] + public partial class HostPoolPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolPatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatchTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType?) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType?) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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 HostPoolPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatchTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType?) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType?) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of HostPool. + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchPropertiesTypeConverter))] + public partial interface IHostPoolPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..9bc7b95f6d9d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.cs new file mode 100644 index 000000000000..3d42c6ccdf5e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.cs @@ -0,0 +1,505 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of HostPool. + public partial class HostPoolPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal + { + + /// Backing field for property. + private string _customRdpProperty; + + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CustomRdpProperty { get => this._customRdpProperty; set => this._customRdpProperty = value; } + + /// Backing field for property. + private string _description; + + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? _loadBalancerType; + + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get => this._loadBalancerType; set => this._loadBalancerType = value; } + + /// Backing field for property. + private int? _maxSessionLimit; + + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? MaxSessionLimit { get => this._maxSessionLimit; set => this._maxSessionLimit = value; } + + /// Internal Acessors for RegistrationInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal.RegistrationInfo { get => (this._registrationInfo = this._registrationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatch()); set { {_registrationInfo = value;} } } + + /// Internal Acessors for SessionHostComponentUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal.SessionHostComponentUpdateConfiguration { get => (this._sessionHostComponentUpdateConfiguration = this._sessionHostComponentUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties()); set { {_sessionHostComponentUpdateConfiguration = value;} } } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationPrimaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal.SessionHostComponentUpdateConfigurationPrimaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindow = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationSecondaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchPropertiesInternal.SessionHostComponentUpdateConfigurationSecondaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindow = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? _personalDesktopAssignmentType; + + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get => this._personalDesktopAssignmentType; set => this._personalDesktopAssignmentType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? _preferredAppGroupType; + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get => this._preferredAppGroupType; set => this._preferredAppGroupType = value; } + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowDayOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowDayOfWeek = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? PrimaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowHour = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch _registrationInfo; + + /// The registration info of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch RegistrationInfo { get => (this._registrationInfo = this._registrationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatch()); set => this._registrationInfo = value; } + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? RegistrationInfoExpirationTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)RegistrationInfo).ExpirationTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)RegistrationInfo).ExpirationTime = value ?? default(global::System.DateTime); } + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)RegistrationInfo).RegistrationTokenOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)RegistrationInfo).RegistrationTokenOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); } + + /// Backing field for property. + private int? _ring; + + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Ring { get => this._ring; set => this._ring = value; } + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] SecondaryWindowDaysOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowDaysOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowDaysOfWeek = value ?? null /* arrayOf */; } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SecondaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowHour = value ?? default(int); } + + /// + /// Backing field for property. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties _sessionHostComponentUpdateConfiguration; + + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get => (this._sessionHostComponentUpdateConfiguration = this._sessionHostComponentUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties()); set => this._sessionHostComponentUpdateConfiguration = value; } + + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceWindowTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceWindowTimeZone = value ?? null; } + + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).UseSessionHostLocalTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).UseSessionHostLocalTime = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties _sessionHostConfiguration; + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => (this._sessionHostConfiguration = this._sessionHostConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties()); set => this._sessionHostConfiguration = value; } + + /// Backing field for property. + private string _ssoClientId; + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoClientId { get => this._ssoClientId; set => this._ssoClientId = value; } + + /// Backing field for property. + private string _ssoClientSecretKeyVaultPath; + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoClientSecretKeyVaultPath { get => this._ssoClientSecretKeyVaultPath; set => this._ssoClientSecretKeyVaultPath = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? _ssoSecretType; + + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get => this._ssoSecretType; set => this._ssoSecretType = value; } + + /// Backing field for property. + private string _ssoadfsAuthority; + + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoadfsAuthority { get => this._ssoadfsAuthority; set => this._ssoadfsAuthority = value; } + + /// Backing field for property. + private bool? _startVMOnConnect; + + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? StartVMOnConnect { get => this._startVMOnConnect; set => this._startVMOnConnect = value; } + + /// Backing field for property. + private string _vMTemplate; + + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string VMTemplate { get => this._vMTemplate; set => this._vMTemplate = value; } + + /// Backing field for property. + private bool? _validationEnvironment; + + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ValidationEnvironment { get => this._validationEnvironment; set => this._validationEnvironment = value; } + + /// Creates an new instance. + public HostPoolPatchProperties() + { + + } + } + /// Properties of HostPool. + public partial interface IHostPoolPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + string CustomRdpProperty { get; set; } + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get; set; } + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + int? MaxSessionLimit { get; set; } + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get; set; } + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? PrimaryWindowHour { get; set; } + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? SecondaryWindowHour { get; set; } + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(bool) })] + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(bool) })] + bool? StartVMOnConnect { get; set; } + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + string VMTemplate { get; set; } + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidationEnvironment { get; set; } + + } + /// Properties of HostPool. + internal partial interface IHostPoolPatchPropertiesInternal + + { + /// Custom rdp property of HostPool. + string CustomRdpProperty { get; set; } + /// Description of HostPool. + string Description { get; set; } + /// Friendly name of HostPool. + string FriendlyName { get; set; } + /// The type of the load balancer. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType? LoadBalancerType { get; set; } + /// The max session limit of HostPool. + int? MaxSessionLimit { get; set; } + /// PersonalDesktopAssignment type for HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType? PreferredAppGroupType { get; set; } + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? PrimaryWindowHour { get; set; } + /// Enabled to allow this resource to be access from the public network + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch RegistrationInfo { get; set; } + /// Expiration time of registration token. + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The ring number of HostPool. + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? SecondaryWindowHour { get; set; } + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get; set; } + /// The type of maintenance for session host components. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties SessionHostComponentUpdateConfigurationPrimaryWindow { get; set; } + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SessionHostComponentUpdateConfigurationSecondaryWindow { get; set; } + /// Whether to use localTime of the virtual machine. + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + bool? StartVMOnConnect { get; set; } + /// VM template for sessionhosts configuration within hostpool. + string VMTemplate { get; set; } + /// Is validation environment. + bool? ValidationEnvironment { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.json.cs new file mode 100644 index 000000000000..796817499e9c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchProperties.json.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of HostPool. + public partial class HostPoolPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolPatchProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registrationInfo = If( json?.PropertyT("registrationInfo"), out var __jsonRegistrationInfo) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoPatch.FromJson(__jsonRegistrationInfo) : RegistrationInfo;} + {_sessionHostComponentUpdateConfiguration = If( json?.PropertyT("sessionHostComponentUpdateConfiguration"), out var __jsonSessionHostComponentUpdateConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties.FromJson(__jsonSessionHostComponentUpdateConfiguration) : SessionHostComponentUpdateConfiguration;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_customRdpProperty = If( json?.PropertyT("customRdpProperty"), out var __jsonCustomRdpProperty) ? (string)__jsonCustomRdpProperty : (string)CustomRdpProperty;} + {_maxSessionLimit = If( json?.PropertyT("maxSessionLimit"), out var __jsonMaxSessionLimit) ? (int?)__jsonMaxSessionLimit : MaxSessionLimit;} + {_personalDesktopAssignmentType = If( json?.PropertyT("personalDesktopAssignmentType"), out var __jsonPersonalDesktopAssignmentType) ? (string)__jsonPersonalDesktopAssignmentType : (string)PersonalDesktopAssignmentType;} + {_loadBalancerType = If( json?.PropertyT("loadBalancerType"), out var __jsonLoadBalancerType) ? (string)__jsonLoadBalancerType : (string)LoadBalancerType;} + {_ring = If( json?.PropertyT("ring"), out var __jsonRing) ? (int?)__jsonRing : Ring;} + {_validationEnvironment = If( json?.PropertyT("validationEnvironment"), out var __jsonValidationEnvironment) ? (bool?)__jsonValidationEnvironment : ValidationEnvironment;} + {_vMTemplate = If( json?.PropertyT("vmTemplate"), out var __jsonVMTemplate) ? (string)__jsonVMTemplate : (string)VMTemplate;} + {_ssoadfsAuthority = If( json?.PropertyT("ssoadfsAuthority"), out var __jsonSsoadfsAuthority) ? (string)__jsonSsoadfsAuthority : (string)SsoadfsAuthority;} + {_ssoClientId = If( json?.PropertyT("ssoClientId"), out var __jsonSsoClientId) ? (string)__jsonSsoClientId : (string)SsoClientId;} + {_ssoClientSecretKeyVaultPath = If( json?.PropertyT("ssoClientSecretKeyVaultPath"), out var __jsonSsoClientSecretKeyVaultPath) ? (string)__jsonSsoClientSecretKeyVaultPath : (string)SsoClientSecretKeyVaultPath;} + {_ssoSecretType = If( json?.PropertyT("ssoSecretType"), out var __jsonSsoSecretType) ? (string)__jsonSsoSecretType : (string)SsoSecretType;} + {_preferredAppGroupType = If( json?.PropertyT("preferredAppGroupType"), out var __jsonPreferredAppGroupType) ? (string)__jsonPreferredAppGroupType : (string)PreferredAppGroupType;} + {_startVMOnConnect = If( json?.PropertyT("startVMOnConnect"), out var __jsonStartVMOnConnect) ? (bool?)__jsonStartVMOnConnect : StartVMOnConnect;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_sessionHostConfiguration = If( json?.PropertyT("sessionHostConfiguration"), out var __jsonSessionHostConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties.FromJson(__jsonSessionHostConfiguration) : SessionHostConfiguration;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registrationInfo ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._registrationInfo.ToJson(null,serializationMode) : null, "registrationInfo" ,container.Add ); + AddIf( null != this._sessionHostComponentUpdateConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sessionHostComponentUpdateConfiguration.ToJson(null,serializationMode) : null, "sessionHostComponentUpdateConfiguration" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._customRdpProperty)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._customRdpProperty.ToString()) : null, "customRdpProperty" ,container.Add ); + AddIf( null != this._maxSessionLimit ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._maxSessionLimit) : null, "maxSessionLimit" ,container.Add ); + AddIf( null != (((object)this._personalDesktopAssignmentType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._personalDesktopAssignmentType.ToString()) : null, "personalDesktopAssignmentType" ,container.Add ); + AddIf( null != (((object)this._loadBalancerType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._loadBalancerType.ToString()) : null, "loadBalancerType" ,container.Add ); + AddIf( null != this._ring ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._ring) : null, "ring" ,container.Add ); + AddIf( null != this._validationEnvironment ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._validationEnvironment) : null, "validationEnvironment" ,container.Add ); + AddIf( null != (((object)this._vMTemplate)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._vMTemplate.ToString()) : null, "vmTemplate" ,container.Add ); + AddIf( null != (((object)this._ssoadfsAuthority)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoadfsAuthority.ToString()) : null, "ssoadfsAuthority" ,container.Add ); + AddIf( null != (((object)this._ssoClientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoClientId.ToString()) : null, "ssoClientId" ,container.Add ); + AddIf( null != (((object)this._ssoClientSecretKeyVaultPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoClientSecretKeyVaultPath.ToString()) : null, "ssoClientSecretKeyVaultPath" ,container.Add ); + AddIf( null != (((object)this._ssoSecretType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoSecretType.ToString()) : null, "ssoSecretType" ,container.Add ); + AddIf( null != (((object)this._preferredAppGroupType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._preferredAppGroupType.ToString()) : null, "preferredAppGroupType" ,container.Add ); + AddIf( null != this._startVMOnConnect ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._startVMOnConnect) : null, "startVMOnConnect" ,container.Add ); + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + AddIf( null != this._sessionHostConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sessionHostConfiguration.ToJson(null,serializationMode) : null, "sessionHostConfiguration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.PowerShell.cs new file mode 100644 index 000000000000..5233fb503c30 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchTagsTypeConverter))] + public partial class HostPoolPatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolPatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolPatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolPatchTags(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 HostPoolPatchTags(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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(HostPoolPatchTagsTypeConverter))] + public partial interface IHostPoolPatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.TypeConverter.cs new file mode 100644 index 000000000000..c38b180e1b87 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolPatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolPatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolPatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolPatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.cs new file mode 100644 index 000000000000..3edf5fec0648 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class HostPoolPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTagsInternal + { + + /// Creates an new instance. + public HostPoolPatchTags() + { + + } + } + /// tags to be updated + public partial interface IHostPoolPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IHostPoolPatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.dictionary.cs new file mode 100644 index 000000000000..59201447142f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class HostPoolPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.json.cs new file mode 100644 index 000000000000..e95523864271 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolPatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class HostPoolPatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolPatchTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal HostPoolPatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.PowerShell.cs new file mode 100644 index 000000000000..7412e2e77910 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.PowerShell.cs @@ -0,0 +1,209 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of HostPool. + [System.ComponentModel.TypeConverter(typeof(HostPoolPropertiesTypeConverter))] + public partial class HostPoolProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoToken = (string) content.GetValueForProperty("RegistrationInfoToken",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoToken, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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 HostPoolProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo) content.GetValueForProperty("RegistrationInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequest = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties) content.GetValueForProperty("MigrationRequest",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequest, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties) content.GetValueForProperty("SessionHostComponentUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PersonalDesktopAssignmentType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType?) content.GetValueForProperty("PersonalDesktopAssignmentType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PersonalDesktopAssignmentType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CustomRdpProperty = (string) content.GetValueForProperty("CustomRdpProperty",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CustomRdpProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MaxSessionLimit = (int?) content.GetValueForProperty("MaxSessionLimit",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MaxSessionLimit, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).LoadBalancerType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) content.GetValueForProperty("LoadBalancerType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).LoadBalancerType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Ring = (int?) content.GetValueForProperty("Ring",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).Ring, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ValidationEnvironment = (bool?) content.GetValueForProperty("ValidationEnvironment",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ValidationEnvironment, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).VMTemplate = (string) content.GetValueForProperty("VMTemplate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).VMTemplate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoadfsAuthority = (string) content.GetValueForProperty("SsoadfsAuthority",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoadfsAuthority, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientId = (string) content.GetValueForProperty("SsoClientId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientSecretKeyVaultPath = (string) content.GetValueForProperty("SsoClientSecretKeyVaultPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoClientSecretKeyVaultPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoSecretType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType?) content.GetValueForProperty("SsoSecretType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SsoSecretType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PreferredAppGroupType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) content.GetValueForProperty("PreferredAppGroupType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PreferredAppGroupType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).StartVMOnConnect = (bool?) content.GetValueForProperty("StartVMOnConnect",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).StartVMOnConnect, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoExpirationTime = (global::System.DateTime?) content.GetValueForProperty("RegistrationInfoExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoToken = (string) content.GetValueForProperty("RegistrationInfoToken",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoToken, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("MigrationRequestOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationInfoRegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).RegistrationInfoRegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestMigrationPath = (string) content.GetValueForProperty("MigrationRequestMigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).MigrationRequestMigrationPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationPrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationPrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SessionHostComponentUpdateConfigurationSecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationSecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = (bool?) content.GetValueForProperty("SessionHostComponentUpdateConfigurationUseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationUseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = (string) content.GetValueForProperty("SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of HostPool. + [System.ComponentModel.TypeConverter(typeof(HostPoolPropertiesTypeConverter))] + public partial interface IHostPoolProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.TypeConverter.cs new file mode 100644 index 000000000000..27417144dbc8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.cs new file mode 100644 index 000000000000..e0b4c59dd66e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.cs @@ -0,0 +1,667 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of HostPool. + public partial class HostPoolProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal + { + + /// Backing field for property. + private string[] _applicationGroupReference; + + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] ApplicationGroupReference { get => this._applicationGroupReference; } + + /// Backing field for property. + private bool? _cloudPcResource; + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? CloudPcResource { get => this._cloudPcResource; } + + /// Backing field for property. + private string _customRdpProperty; + + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CustomRdpProperty { get => this._customRdpProperty; set => this._customRdpProperty = value; } + + /// Backing field for property. + private string _description; + + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType _hostPoolType; + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => this._hostPoolType; set => this._hostPoolType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType _loadBalancerType; + + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get => this._loadBalancerType; set => this._loadBalancerType = value; } + + /// Backing field for property. + private int? _maxSessionLimit; + + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? MaxSessionLimit { get => this._maxSessionLimit; set => this._maxSessionLimit = value; } + + /// Internal Acessors for ApplicationGroupReference + string[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.ApplicationGroupReference { get => this._applicationGroupReference; set { {_applicationGroupReference = value;} } } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.CloudPcResource { get => this._cloudPcResource; set { {_cloudPcResource = value;} } } + + /// Internal Acessors for MigrationRequest + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.MigrationRequest { get => (this._migrationRequest = this._migrationRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties()); set { {_migrationRequest = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Internal Acessors for RegistrationInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.RegistrationInfo { get => (this._registrationInfo = this._registrationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo()); set { {_registrationInfo = value;} } } + + /// Internal Acessors for SessionHostComponentUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.SessionHostComponentUpdateConfiguration { get => (this._sessionHostComponentUpdateConfiguration = this._sessionHostComponentUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties()); set { {_sessionHostComponentUpdateConfiguration = value;} } } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationPrimaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.SessionHostComponentUpdateConfigurationPrimaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindow = value; } + + /// Internal Acessors for SessionHostComponentUpdateConfigurationSecondaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.SessionHostComponentUpdateConfigurationSecondaryWindow { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindow; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindow = value; } + + /// Internal Acessors for SessionHostConfigurationLastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPropertiesInternal.SessionHostConfigurationLastUpdateTime { get => this._sessionHostConfigurationLastUpdateTime; set { {_sessionHostConfigurationLastUpdateTime = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties _migrationRequest; + + /// The registration info of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get => (this._migrationRequest = this._migrationRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties()); set => this._migrationRequest = value; } + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MigrationRequestMigrationPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).MigrationPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).MigrationPath = value ?? null; } + + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)MigrationRequest).Operation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of HostPool. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? _personalDesktopAssignmentType; + + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get => this._personalDesktopAssignmentType; set => this._personalDesktopAssignmentType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType _preferredAppGroupType; + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get => this._preferredAppGroupType; set => this._preferredAppGroupType = value; } + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowDayOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowDayOfWeek = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? PrimaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).PrimaryWindowHour = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo _registrationInfo; + + /// The registration info of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo RegistrationInfo { get => (this._registrationInfo = this._registrationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo()); set => this._registrationInfo = value; } + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? RegistrationInfoExpirationTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).ExpirationTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).ExpirationTime = value ?? default(global::System.DateTime); } + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).RegistrationTokenOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).RegistrationTokenOperation = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); } + + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string RegistrationInfoToken { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).Token; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)RegistrationInfo).Token = value ?? null; } + + /// Backing field for property. + private int? _ring; + + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Ring { get => this._ring; set => this._ring = value; } + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] SecondaryWindowDaysOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowDaysOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowDaysOfWeek = value ?? null /* arrayOf */; } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SecondaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowHour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).SecondaryWindowHour = value ?? default(int); } + + /// + /// Backing field for property. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties _sessionHostComponentUpdateConfiguration; + + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get => (this._sessionHostComponentUpdateConfiguration = this._sessionHostComponentUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties()); set => this._sessionHostComponentUpdateConfiguration = value; } + + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceWindowTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).MaintenanceWindowTimeZone = value ?? null; } + + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).UseSessionHostLocalTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)SessionHostComponentUpdateConfiguration).UseSessionHostLocalTime = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties _sessionHostConfiguration; + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => (this._sessionHostConfiguration = this._sessionHostConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties()); set => this._sessionHostConfiguration = value; } + + /// + /// Backing field for property. + /// + private global::System.DateTime? _sessionHostConfigurationLastUpdateTime; + + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? SessionHostConfigurationLastUpdateTime { get => this._sessionHostConfigurationLastUpdateTime; } + + /// Backing field for property. + private string _ssoClientId; + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoClientId { get => this._ssoClientId; set => this._ssoClientId = value; } + + /// Backing field for property. + private string _ssoClientSecretKeyVaultPath; + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoClientSecretKeyVaultPath { get => this._ssoClientSecretKeyVaultPath; set => this._ssoClientSecretKeyVaultPath = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? _ssoSecretType; + + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get => this._ssoSecretType; set => this._ssoSecretType = value; } + + /// Backing field for property. + private string _ssoadfsAuthority; + + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SsoadfsAuthority { get => this._ssoadfsAuthority; set => this._ssoadfsAuthority = value; } + + /// Backing field for property. + private bool? _startVMOnConnect; + + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? StartVMOnConnect { get => this._startVMOnConnect; set => this._startVMOnConnect = value; } + + /// Backing field for property. + private string _vMTemplate; + + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string VMTemplate { get => this._vMTemplate; set => this._vMTemplate = value; } + + /// Backing field for property. + private bool? _validationEnvironment; + + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ValidationEnvironment { get => this._validationEnvironment; set => this._validationEnvironment = value; } + + /// Creates an new instance. + public HostPoolProperties() + { + + } + } + /// Properties of HostPool. + public partial interface IHostPoolProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Custom rdp property of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + string CustomRdpProperty { get; set; } + /// Description of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get; set; } + /// The type of the load balancer. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get; set; } + /// The max session limit of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + int? MaxSessionLimit { get; set; } + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of HostPool. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of HostPool. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// PersonalDesktopAssignment type for HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get; set; } + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? PrimaryWindowHour { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The registration token base64 encoded string.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string RegistrationInfoToken { get; set; } + /// The ring number of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? SecondaryWindowHour { get; set; } + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(bool) })] + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"This time will match the time in the SHC for when the update was initiated.", + SerializedName = @"sessionHostConfigurationLastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(bool) })] + bool? StartVMOnConnect { get; set; } + /// VM template for sessionhosts configuration within hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + string VMTemplate { get; set; } + /// Is validation environment. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidationEnvironment { get; set; } + + } + /// Properties of HostPool. + internal partial interface IHostPoolPropertiesInternal + + { + /// List of applicationGroup links. + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Custom rdp property of HostPool. + string CustomRdpProperty { get; set; } + /// Description of HostPool. + string Description { get; set; } + /// Friendly name of HostPool. + string FriendlyName { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get; set; } + /// The type of the load balancer. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get; set; } + /// The max session limit of HostPool. + int? MaxSessionLimit { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties MigrationRequest { get; set; } + /// The path to the legacy object to migrate. + string MigrationRequestMigrationPath { get; set; } + /// The type of operation for migration. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? MigrationRequestOperation { get; set; } + /// ObjectId of HostPool. (internal use) + string ObjectId { get; set; } + /// PersonalDesktopAssignment type for HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType? PersonalDesktopAssignmentType { get; set; } + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get; set; } + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? PrimaryWindowHour { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The registration info of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo RegistrationInfo { get; set; } + /// Expiration time of registration token. + global::System.DateTime? RegistrationInfoExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationInfoRegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + string RegistrationInfoToken { get; set; } + /// The ring number of HostPool. + int? Ring { get; set; } + /// Set of days of the week on which this schedule is active. + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? SecondaryWindowHour { get; set; } + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties SessionHostComponentUpdateConfiguration { get; set; } + /// The type of maintenance for session host components. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? SessionHostComponentUpdateConfigurationMaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get; set; } + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties SessionHostComponentUpdateConfigurationPrimaryWindow { get; set; } + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SessionHostComponentUpdateConfigurationSecondaryWindow { get; set; } + /// Whether to use localTime of the virtual machine. + bool? SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; set; } + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + string SsoClientId { get; set; } + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + string SsoClientSecretKeyVaultPath { get; set; } + /// The type of single sign on Secret Type. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType? SsoSecretType { get; set; } + /// URL to customer ADFS server for signing WVD SSO certificates. + string SsoadfsAuthority { get; set; } + /// The flag to turn on/off StartVMOnConnect feature. + bool? StartVMOnConnect { get; set; } + /// VM template for sessionhosts configuration within hostpool. + string VMTemplate { get; set; } + /// Is validation environment. + bool? ValidationEnvironment { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.json.cs new file mode 100644 index 000000000000..d1acae643c96 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolProperties.json.cs @@ -0,0 +1,169 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of HostPool. + public partial class HostPoolProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registrationInfo = If( json?.PropertyT("registrationInfo"), out var __jsonRegistrationInfo) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.RegistrationInfo.FromJson(__jsonRegistrationInfo) : RegistrationInfo;} + {_migrationRequest = If( json?.PropertyT("migrationRequest"), out var __jsonMigrationRequest) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MigrationRequestProperties.FromJson(__jsonMigrationRequest) : MigrationRequest;} + {_sessionHostComponentUpdateConfiguration = If( json?.PropertyT("sessionHostComponentUpdateConfiguration"), out var __jsonSessionHostComponentUpdateConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostComponentUpdateConfigurationProperties.FromJson(__jsonSessionHostComponentUpdateConfiguration) : SessionHostComponentUpdateConfiguration;} + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_hostPoolType = If( json?.PropertyT("hostPoolType"), out var __jsonHostPoolType) ? (string)__jsonHostPoolType : (string)HostPoolType;} + {_personalDesktopAssignmentType = If( json?.PropertyT("personalDesktopAssignmentType"), out var __jsonPersonalDesktopAssignmentType) ? (string)__jsonPersonalDesktopAssignmentType : (string)PersonalDesktopAssignmentType;} + {_customRdpProperty = If( json?.PropertyT("customRdpProperty"), out var __jsonCustomRdpProperty) ? (string)__jsonCustomRdpProperty : (string)CustomRdpProperty;} + {_maxSessionLimit = If( json?.PropertyT("maxSessionLimit"), out var __jsonMaxSessionLimit) ? (int?)__jsonMaxSessionLimit : MaxSessionLimit;} + {_loadBalancerType = If( json?.PropertyT("loadBalancerType"), out var __jsonLoadBalancerType) ? (string)__jsonLoadBalancerType : (string)LoadBalancerType;} + {_ring = If( json?.PropertyT("ring"), out var __jsonRing) ? (int?)__jsonRing : Ring;} + {_validationEnvironment = If( json?.PropertyT("validationEnvironment"), out var __jsonValidationEnvironment) ? (bool?)__jsonValidationEnvironment : ValidationEnvironment;} + {_vMTemplate = If( json?.PropertyT("vmTemplate"), out var __jsonVMTemplate) ? (string)__jsonVMTemplate : (string)VMTemplate;} + {_applicationGroupReference = If( json?.PropertyT("applicationGroupReferences"), out var __jsonApplicationGroupReferences) ? If( __jsonApplicationGroupReferences as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : ApplicationGroupReference;} + {_ssoadfsAuthority = If( json?.PropertyT("ssoadfsAuthority"), out var __jsonSsoadfsAuthority) ? (string)__jsonSsoadfsAuthority : (string)SsoadfsAuthority;} + {_ssoClientId = If( json?.PropertyT("ssoClientId"), out var __jsonSsoClientId) ? (string)__jsonSsoClientId : (string)SsoClientId;} + {_ssoClientSecretKeyVaultPath = If( json?.PropertyT("ssoClientSecretKeyVaultPath"), out var __jsonSsoClientSecretKeyVaultPath) ? (string)__jsonSsoClientSecretKeyVaultPath : (string)SsoClientSecretKeyVaultPath;} + {_ssoSecretType = If( json?.PropertyT("ssoSecretType"), out var __jsonSsoSecretType) ? (string)__jsonSsoSecretType : (string)SsoSecretType;} + {_preferredAppGroupType = If( json?.PropertyT("preferredAppGroupType"), out var __jsonPreferredAppGroupType) ? (string)__jsonPreferredAppGroupType : (string)PreferredAppGroupType;} + {_startVMOnConnect = If( json?.PropertyT("startVMOnConnect"), out var __jsonStartVMOnConnect) ? (bool?)__jsonStartVMOnConnect : StartVMOnConnect;} + {_cloudPcResource = If( json?.PropertyT("cloudPcResource"), out var __jsonCloudPcResource) ? (bool?)__jsonCloudPcResource : CloudPcResource;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_sessionHostConfigurationLastUpdateTime = If( json?.PropertyT("sessionHostConfigurationLastUpdateTime"), out var __jsonSessionHostConfigurationLastUpdateTime) ? global::System.DateTime.TryParse((string)__jsonSessionHostConfigurationLastUpdateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonSessionHostConfigurationLastUpdateTimeValue) ? __jsonSessionHostConfigurationLastUpdateTimeValue : SessionHostConfigurationLastUpdateTime : SessionHostConfigurationLastUpdateTime;} + {_sessionHostConfiguration = If( json?.PropertyT("sessionHostConfiguration"), out var __jsonSessionHostConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties.FromJson(__jsonSessionHostConfiguration) : SessionHostConfiguration;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._registrationInfo ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._registrationInfo.ToJson(null,serializationMode) : null, "registrationInfo" ,container.Add ); + AddIf( null != this._migrationRequest ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._migrationRequest.ToJson(null,serializationMode) : null, "migrationRequest" ,container.Add ); + AddIf( null != this._sessionHostComponentUpdateConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sessionHostComponentUpdateConfiguration.ToJson(null,serializationMode) : null, "sessionHostComponentUpdateConfiguration" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._hostPoolType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolType.ToString()) : null, "hostPoolType" ,container.Add ); + AddIf( null != (((object)this._personalDesktopAssignmentType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._personalDesktopAssignmentType.ToString()) : null, "personalDesktopAssignmentType" ,container.Add ); + AddIf( null != (((object)this._customRdpProperty)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._customRdpProperty.ToString()) : null, "customRdpProperty" ,container.Add ); + AddIf( null != this._maxSessionLimit ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._maxSessionLimit) : null, "maxSessionLimit" ,container.Add ); + AddIf( null != (((object)this._loadBalancerType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._loadBalancerType.ToString()) : null, "loadBalancerType" ,container.Add ); + AddIf( null != this._ring ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._ring) : null, "ring" ,container.Add ); + AddIf( null != this._validationEnvironment ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._validationEnvironment) : null, "validationEnvironment" ,container.Add ); + AddIf( null != (((object)this._vMTemplate)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._vMTemplate.ToString()) : null, "vmTemplate" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._applicationGroupReference) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._applicationGroupReference ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("applicationGroupReferences",__w); + } + } + AddIf( null != (((object)this._ssoadfsAuthority)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoadfsAuthority.ToString()) : null, "ssoadfsAuthority" ,container.Add ); + AddIf( null != (((object)this._ssoClientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoClientId.ToString()) : null, "ssoClientId" ,container.Add ); + AddIf( null != (((object)this._ssoClientSecretKeyVaultPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoClientSecretKeyVaultPath.ToString()) : null, "ssoClientSecretKeyVaultPath" ,container.Add ); + AddIf( null != (((object)this._ssoSecretType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._ssoSecretType.ToString()) : null, "ssoSecretType" ,container.Add ); + AddIf( null != (((object)this._preferredAppGroupType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._preferredAppGroupType.ToString()) : null, "preferredAppGroupType" ,container.Add ); + AddIf( null != this._startVMOnConnect ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._startVMOnConnect) : null, "startVMOnConnect" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._cloudPcResource ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._cloudPcResource) : null, "cloudPcResource" ,container.Add ); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._sessionHostConfigurationLastUpdateTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sessionHostConfigurationLastUpdateTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "sessionHostConfigurationLastUpdateTime" ,container.Add ); + } + AddIf( null != this._sessionHostConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sessionHostConfiguration.ToJson(null,serializationMode) : null, "sessionHostConfiguration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.PowerShell.cs new file mode 100644 index 000000000000..b390d88048ca --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents properties for a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateTypeConverter))] + public partial class HostPoolUpdate + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdate(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdate(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdate(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).Parameter = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("Parameter",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).Parameter, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ValidateOnly = (bool?) content.GetValueForProperty("ValidateOnly",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ValidateOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("ParameterScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterSaveOriginalDisk = (bool?) content.GetValueForProperty("ParameterSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("ParameterMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("ParameterMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffDelaySecond = (int?) content.GetValueForProperty("ParameterLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffMessage = (string) content.GetValueForProperty("ParameterLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTimeZone, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolUpdate(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).Parameter = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("Parameter",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).Parameter, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ValidateOnly = (bool?) content.GetValueForProperty("ValidateOnly",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ValidateOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("ParameterScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterSaveOriginalDisk = (bool?) content.GetValueForProperty("ParameterSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("ParameterMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("ParameterMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffDelaySecond = (int?) content.GetValueForProperty("ParameterLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffMessage = (string) content.GetValueForProperty("ParameterLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ParameterLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal)this).ScheduledTimeZone, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents properties for a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateTypeConverter))] + public partial interface IHostPoolUpdate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.TypeConverter.cs new file mode 100644 index 000000000000..0bb72a217ca8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdate.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdate.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdate.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.cs new file mode 100644 index 000000000000..ed6af3690f20 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.cs @@ -0,0 +1,176 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents properties for a hostpool update. + public partial class HostPoolUpdate : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal + { + + /// Internal Acessors for Parameter + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal.Parameter { get => (this._parameter = this._parameter ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties()); set { {_parameter = value;} } } + + /// Internal Acessors for ParameterScheduledTime + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateInternal.ParameterScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties _parameter; + + /// Parameters for a hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties Parameter { get => (this._parameter = this._parameter ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties()); set => this._parameter = value; } + + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? ParameterLogOffDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).LogOffDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).LogOffDelaySecond = value ?? default(int); } + + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ParameterLogOffMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).LogOffMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).LogOffMessage = value ?? null; } + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] ParameterMaintenanceAlert { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).MaintenanceAlert; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).MaintenanceAlert = value ?? null /* arrayOf */; } + + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? ParameterMaxVmsRemovedDuringUpdate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).MaxVmsRemovedDuringUpdate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).MaxVmsRemovedDuringUpdate = value ?? default(int); } + + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? ParameterSaveOriginalDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).SaveOriginalDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).SaveOriginalDisk = value ?? default(bool); } + + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTimeTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTimeTime = value ?? default(global::System.DateTime); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ScheduledTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)Parameter).ScheduledTimeZone = value ?? null; } + + /// Backing field for property. + private bool? _validateOnly; + + /// + /// When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ValidateOnly { get => this._validateOnly; set => this._validateOnly = value; } + + /// Creates an new instance. + public HostPoolUpdate() + { + + } + } + /// Represents properties for a hostpool update. + public partial interface IHostPoolUpdate : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? ParameterLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + string ParameterLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] ParameterMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + int? ParameterMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(bool) })] + bool? ParameterSaveOriginalDisk { get; set; } + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string ScheduledTimeZone { get; set; } + /// + /// When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated.", + SerializedName = @"validateOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? ValidateOnly { get; set; } + + } + /// Represents properties for a hostpool update. + internal partial interface IHostPoolUpdateInternal + + { + /// Parameters for a hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties Parameter { get; set; } + /// Grace period before logging off users in seconds. + int? ParameterLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + string ParameterLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] ParameterMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + int? ParameterMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + bool? ParameterSaveOriginalDisk { get; set; } + /// When set schedules the hostpool update at specific time. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties ParameterScheduledTime { get; set; } + /// The time the hostpool update is schedule for. + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string ScheduledTimeZone { get; set; } + /// + /// When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + /// + bool? ValidateOnly { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.json.cs new file mode 100644 index 000000000000..9c66f382792e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdate.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents properties for a hostpool update. + public partial class HostPoolUpdate + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdate(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_parameter = If( json?.PropertyT("parameters"), out var __jsonParameters) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties.FromJson(__jsonParameters) : Parameter;} + {_validateOnly = If( json?.PropertyT("validateOnly"), out var __jsonValidateOnly) ? (bool?)__jsonValidateOnly : ValidateOnly;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._parameter ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._parameter.ToJson(null,serializationMode) : null, "parameters" ,container.Add ); + AddIf( null != this._validateOnly ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._validateOnly) : null, "validateOnly" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.PowerShell.cs new file mode 100644 index 000000000000..62f9e6aaced5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.PowerShell.cs @@ -0,0 +1,148 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The configurations of a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateConfigurationPropertiesTypeConverter))] + public partial class HostPoolUpdateConfigurationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateConfigurationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateConfigurationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateConfigurationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).SaveOriginalDisk = (bool?) content.GetValueForProperty("SaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).SaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("MaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("MaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffDelaySecond = (int?) content.GetValueForProperty("LogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffMessage = (string) content.GetValueForProperty("LogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTimeTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeZone, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolUpdateConfigurationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).SaveOriginalDisk = (bool?) content.GetValueForProperty("SaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).SaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("MaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("MaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).MaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffDelaySecond = (int?) content.GetValueForProperty("LogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffMessage = (string) content.GetValueForProperty("LogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).LogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTimeTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)this).ScheduledTimeZone, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The configurations of a hostpool update. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateConfigurationPropertiesTypeConverter))] + public partial interface IHostPoolUpdateConfigurationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.TypeConverter.cs new file mode 100644 index 000000000000..168679c90ca7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.TypeConverter.cs @@ -0,0 +1,144 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateConfigurationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateConfigurationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateConfigurationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateConfigurationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.cs new file mode 100644 index 000000000000..f3ca98221552 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.cs @@ -0,0 +1,163 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The configurations of a hostpool update. + public partial class HostPoolUpdateConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal + { + + /// Backing field for property. + private int? _logOffDelaySecond; + + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? LogOffDelaySecond { get => this._logOffDelaySecond; set => this._logOffDelaySecond = value; } + + /// Backing field for property. + private string _logOffMessage; + + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string LogOffMessage { get => this._logOffMessage; set => this._logOffMessage = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] _maintenanceAlert; + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] MaintenanceAlert { get => this._maintenanceAlert; set => this._maintenanceAlert = value; } + + /// Backing field for property. + private int? _maxVmsRemovedDuringUpdate; + + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? MaxVmsRemovedDuringUpdate { get => this._maxVmsRemovedDuringUpdate; set => this._maxVmsRemovedDuringUpdate = value; } + + /// Internal Acessors for ScheduledTime + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal.ScheduledTime { get => (this._scheduledTime = this._scheduledTime ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimeProperties()); set { {_scheduledTime = value;} } } + + /// Backing field for property. + private bool? _saveOriginalDisk; + + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? SaveOriginalDisk { get => this._saveOriginalDisk; set => this._saveOriginalDisk = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties _scheduledTime; + + /// When set schedules the hostpool update at specific time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties ScheduledTime { get => (this._scheduledTime = this._scheduledTime ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimeProperties()); set => this._scheduledTime = value; } + + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ScheduledTimeTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)ScheduledTime).Time; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)ScheduledTime).Time = value ?? default(global::System.DateTime); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ScheduledTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)ScheduledTime).TimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)ScheduledTime).TimeZone = value ?? null; } + + /// Creates an new instance. + public HostPoolUpdateConfigurationProperties() + { + + } + } + /// The configurations of a hostpool update. + public partial interface IHostPoolUpdateConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? LogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + string LogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] MaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + int? MaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(bool) })] + bool? SaveOriginalDisk { get; set; } + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ScheduledTimeTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string ScheduledTimeZone { get; set; } + + } + /// The configurations of a hostpool update. + internal partial interface IHostPoolUpdateConfigurationPropertiesInternal + + { + /// Grace period before logging off users in seconds. + int? LogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + string LogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] MaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + int? MaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + bool? SaveOriginalDisk { get; set; } + /// When set schedules the hostpool update at specific time. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties ScheduledTime { get; set; } + /// The time the hostpool update is schedule for. + global::System.DateTime? ScheduledTimeTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string ScheduledTimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.json.cs new file mode 100644 index 000000000000..16eaf86d8ea2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateConfigurationProperties.json.cs @@ -0,0 +1,120 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The configurations of a hostpool update. + public partial class HostPoolUpdateConfigurationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateConfigurationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateConfigurationProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scheduledTime = If( json?.PropertyT("scheduledTime"), out var __jsonScheduledTime) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimeProperties.FromJson(__jsonScheduledTime) : ScheduledTime;} + {_saveOriginalDisk = If( json?.PropertyT("saveOriginalDisk"), out var __jsonSaveOriginalDisk) ? (bool?)__jsonSaveOriginalDisk : SaveOriginalDisk;} + {_maxVmsRemovedDuringUpdate = If( json?.PropertyT("maxVMsRemovedDuringUpdate"), out var __jsonMaxVMSRemovedDuringUpdate) ? (int?)__jsonMaxVMSRemovedDuringUpdate : MaxVmsRemovedDuringUpdate;} + {_maintenanceAlert = If( json?.PropertyT("maintenanceAlerts"), out var __jsonMaintenanceAlerts) ? If( __jsonMaintenanceAlerts as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsProperties.FromJson(__u) )) ))() : null : MaintenanceAlert;} + {_logOffDelaySecond = If( json?.PropertyT("logOffDelaySeconds"), out var __jsonLogOffDelaySeconds) ? (int?)__jsonLogOffDelaySeconds : LogOffDelaySecond;} + {_logOffMessage = If( json?.PropertyT("logOffMessage"), out var __jsonLogOffMessage) ? (string)__jsonLogOffMessage : (string)LogOffMessage;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._scheduledTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._scheduledTime.ToJson(null,serializationMode) : null, "scheduledTime" ,container.Add ); + AddIf( null != this._saveOriginalDisk ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._saveOriginalDisk) : null, "saveOriginalDisk" ,container.Add ); + AddIf( null != this._maxVmsRemovedDuringUpdate ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._maxVmsRemovedDuringUpdate) : null, "maxVMsRemovedDuringUpdate" ,container.Add ); + if (null != this._maintenanceAlert) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._maintenanceAlert ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("maintenanceAlerts",__w); + } + AddIf( null != this._logOffDelaySecond ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._logOffDelaySecond) : null, "logOffDelaySeconds" ,container.Add ); + AddIf( null != (((object)this._logOffMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._logOffMessage.ToString()) : null, "logOffMessage" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.PowerShell.cs new file mode 100644 index 000000000000..5e8ee99cba39 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Hostpool update fault information. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFaultTypeConverter))] + public partial class HostPoolUpdateFault + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateFault(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateFault(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateFault(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultType = (string) content.GetValueForProperty("FaultType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultCode = (string) content.GetValueForProperty("FaultCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultText = (string) content.GetValueForProperty("FaultText",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultText, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultContext = (string) content.GetValueForProperty("FaultContext",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultContext, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolUpdateFault(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultType = (string) content.GetValueForProperty("FaultType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultCode = (string) content.GetValueForProperty("FaultCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultText = (string) content.GetValueForProperty("FaultText",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultText, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultContext = (string) content.GetValueForProperty("FaultContext",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal)this).FaultContext, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Hostpool update fault information. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFaultTypeConverter))] + public partial interface IHostPoolUpdateFault + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.TypeConverter.cs new file mode 100644 index 000000000000..634459bf3b4f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateFaultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateFault.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateFault.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateFault.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.cs new file mode 100644 index 000000000000..2cd1388e7136 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Hostpool update fault information. + public partial class HostPoolUpdateFault : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFaultInternal + { + + /// Backing field for property. + private string _faultCode; + + /// Hostpool update fault code. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FaultCode { get => this._faultCode; set => this._faultCode = value; } + + /// Backing field for property. + private string _faultContext; + + /// Hostpool update fault context. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FaultContext { get => this._faultContext; set => this._faultContext = value; } + + /// Backing field for property. + private string _faultText; + + /// Hostpool update fault text. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FaultText { get => this._faultText; set => this._faultText = value; } + + /// Backing field for property. + private string _faultType; + + /// Hostpool update fault type. Either ServiceError or UserError. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FaultType { get => this._faultType; set => this._faultType = value; } + + /// Creates an new instance. + public HostPoolUpdateFault() + { + + } + } + /// Hostpool update fault information. + public partial interface IHostPoolUpdateFault : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Hostpool update fault code. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Hostpool update fault code.", + SerializedName = @"faultCode", + PossibleTypes = new [] { typeof(string) })] + string FaultCode { get; set; } + /// Hostpool update fault context. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Hostpool update fault context.", + SerializedName = @"faultContext", + PossibleTypes = new [] { typeof(string) })] + string FaultContext { get; set; } + /// Hostpool update fault text. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Hostpool update fault text.", + SerializedName = @"faultText", + PossibleTypes = new [] { typeof(string) })] + string FaultText { get; set; } + /// Hostpool update fault type. Either ServiceError or UserError. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Hostpool update fault type. Either ServiceError or UserError.", + SerializedName = @"faultType", + PossibleTypes = new [] { typeof(string) })] + string FaultType { get; set; } + + } + /// Hostpool update fault information. + internal partial interface IHostPoolUpdateFaultInternal + + { + /// Hostpool update fault code. + string FaultCode { get; set; } + /// Hostpool update fault context. + string FaultContext { get; set; } + /// Hostpool update fault text. + string FaultText { get; set; } + /// Hostpool update fault type. Either ServiceError or UserError. + string FaultType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.json.cs new file mode 100644 index 000000000000..af37da122710 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFault.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Hostpool update fault information. + public partial class HostPoolUpdateFault + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateFault(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateFault(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_faultType = If( json?.PropertyT("faultType"), out var __jsonFaultType) ? (string)__jsonFaultType : (string)FaultType;} + {_faultCode = If( json?.PropertyT("faultCode"), out var __jsonFaultCode) ? (string)__jsonFaultCode : (string)FaultCode;} + {_faultText = If( json?.PropertyT("faultText"), out var __jsonFaultText) ? (string)__jsonFaultText : (string)FaultText;} + {_faultContext = If( json?.PropertyT("faultContext"), out var __jsonFaultContext) ? (string)__jsonFaultContext : (string)FaultContext;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._faultType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._faultType.ToString()) : null, "faultType" ,container.Add ); + AddIf( null != (((object)this._faultCode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._faultCode.ToString()) : null, "faultCode" ,container.Add ); + AddIf( null != (((object)this._faultText)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._faultText.ToString()) : null, "faultText" ,container.Add ); + AddIf( null != (((object)this._faultContext)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._faultContext.ToString()) : null, "faultContext" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.PowerShell.cs new file mode 100644 index 000000000000..de8e1cf730b0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.PowerShell.cs @@ -0,0 +1,183 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + /// + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFullPropertiesTypeConverter))] + public partial class HostPoolUpdateFullProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateFullProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateFullProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateFullProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgress = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress) content.GetValueForProperty("MigrateProgress",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgress, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgressTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("HostPoolUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolResourceId = (string) content.GetValueForProperty("HostPoolResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).CorrelationId = (string) content.GetValueForProperty("CorrelationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).CorrelationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeCreated = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeStarted = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeFailed = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeEnded = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("MigrateProgressListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressPercentage = (float?) content.GetValueForProperty("MigrateProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsToMigrate = (int?) content.GetValueForProperty("MigrateProgressSessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrating = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrated = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsRollbackFailed = (int?) content.GetValueForProperty("MigrateProgressSessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsRollbackFailed, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("HostPoolUpdateConfigurationScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk = (bool?) content.GetValueForProperty("HostPoolUpdateConfigurationSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("HostPoolUpdateConfigurationMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffMessage = (string) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTimeZone, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolUpdateFullProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgress = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress) content.GetValueForProperty("MigrateProgress",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgress, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgressTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("HostPoolUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolResourceId = (string) content.GetValueForProperty("HostPoolResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).CorrelationId = (string) content.GetValueForProperty("CorrelationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).CorrelationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeCreated = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeStarted = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeFailed = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeEnded = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressTimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("MigrateProgressListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressPercentage = (float?) content.GetValueForProperty("MigrateProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsToMigrate = (int?) content.GetValueForProperty("MigrateProgressSessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrating = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrated = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsRollbackFailed = (int?) content.GetValueForProperty("MigrateProgressSessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).MigrateProgressSessionHostsRollbackFailed, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("HostPoolUpdateConfigurationScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk = (bool?) content.GetValueForProperty("HostPoolUpdateConfigurationSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("HostPoolUpdateConfigurationMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffMessage = (string) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).HostPoolUpdateConfigurationLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)this).ScheduledTimeZone, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFullPropertiesTypeConverter))] + public partial interface IHostPoolUpdateFullProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.TypeConverter.cs new file mode 100644 index 000000000000..fb11c6eff34f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateFullPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateFullProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateFullProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateFullProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.cs new file mode 100644 index 000000000000..53fdf0a1d643 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.cs @@ -0,0 +1,392 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + /// + public partial class HostPoolUpdateFullProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal + { + + /// Backing field for property. + private string _correlationId; + + /// The correlationId of the hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CorrelationId { get => this._correlationId; set => this._correlationId = value; } + + /// Backing field for property. + private string _hostPoolResourceId; + + /// The resourceId of hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string HostPoolResourceId { get => this._hostPoolResourceId; set => this._hostPoolResourceId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties _hostPoolUpdateConfiguration; + + /// The configurations of a hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties HostPoolUpdateConfiguration { get => (this._hostPoolUpdateConfiguration = this._hostPoolUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties()); set => this._hostPoolUpdateConfiguration = value; } + + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? HostPoolUpdateConfigurationLogOffDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).LogOffDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).LogOffDelaySecond = value ?? default(int); } + + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string HostPoolUpdateConfigurationLogOffMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).LogOffMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).LogOffMessage = value ?? null; } + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).MaintenanceAlert; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).MaintenanceAlert = value ?? null /* arrayOf */; } + + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).MaxVmsRemovedDuringUpdate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).MaxVmsRemovedDuringUpdate = value ?? default(int); } + + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? HostPoolUpdateConfigurationSaveOriginalDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).SaveOriginalDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).SaveOriginalDisk = value ?? default(bool); } + + /// Internal Acessors for HostPoolUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal.HostPoolUpdateConfiguration { get => (this._hostPoolUpdateConfiguration = this._hostPoolUpdateConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties()); set { {_hostPoolUpdateConfiguration = value;} } } + + /// Internal Acessors for HostPoolUpdateConfigurationScheduledTime + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal.HostPoolUpdateConfigurationScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTime = value; } + + /// Internal Acessors for MigrateProgress + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal.MigrateProgress { get => (this._migrateProgress = this._migrateProgress ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgress()); set { {_migrateProgress = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress _migrateProgress; + + /// Properties of host pool update progress. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress MigrateProgress { get => (this._migrateProgress = this._migrateProgress ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgress()); } + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).ListOfError; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).ListOfError = value ?? null /* arrayOf */; } + + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public float? MigrateProgressPercentage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).ProgressPercentage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).ProgressPercentage = value ?? default(float); } + + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsMigrated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsMigrated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsMigrated = value ?? default(int); } + + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsMigrating { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsMigrating; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsMigrating = value ?? default(int); } + + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsRollbackFailed { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsRollbackFailed; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsRollbackFailed = value ?? default(int); } + + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsToMigrate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsToMigrate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).SessionHostsToMigrate = value ?? default(int); } + + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeCreated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeCreated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeCreated = value ?? default(global::System.DateTime); } + + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeEnded { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeEnded; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeEnded = value ?? default(global::System.DateTime); } + + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeFailed { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeFailed; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeFailed = value ?? default(global::System.DateTime); } + + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeStarted { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeStarted; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)MigrateProgress).TimeStarted = value ?? default(global::System.DateTime); } + + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTimeTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTimeTime = value ?? default(global::System.DateTime); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ScheduledTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationPropertiesInternal)HostPoolUpdateConfiguration).ScheduledTimeZone = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties _sessionHostConfiguration; + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => (this._sessionHostConfiguration = this._sessionHostConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties()); set => this._sessionHostConfiguration = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? _updateStatus; + + /// State of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? UpdateStatus { get => this._updateStatus; set => this._updateStatus = value; } + + /// Backing field for property. + private string _version; + + /// The version of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public HostPoolUpdateFullProperties() + { + + } + } + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + public partial interface IHostPoolUpdateFullProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The correlationId of the hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The correlationId of the hostpool update.", + SerializedName = @"correlationId", + PossibleTypes = new [] { typeof(string) })] + string CorrelationId { get; set; } + /// The resourceId of hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resourceId of hostpool.", + SerializedName = @"hostPoolResourceId", + PossibleTypes = new [] { typeof(string) })] + string HostPoolResourceId { get; set; } + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? HostPoolUpdateConfigurationLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + string HostPoolUpdateConfigurationLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(bool) })] + bool? HostPoolUpdateConfigurationSaveOriginalDisk { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"listOfErrors", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get; set; } + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The progress percentage.", + SerializedName = @"progressPercentage", + PossibleTypes = new [] { typeof(float) })] + float? MigrateProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrated by hostpool update.", + SerializedName = @"sessionHostsMigrated", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrating by hostpool update.", + SerializedName = @"sessionHostsMigrating", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts that failed to rollback.", + SerializedName = @"sessionHostsRollbackFailed", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts to migrate by hostpool update.", + SerializedName = @"sessionHostsToMigrate", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsToMigrate { get; set; } + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update create time.", + SerializedName = @"timeCreated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeCreated { get; set; } + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update end time.", + SerializedName = @"timeEnded", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeEnded { get; set; } + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update fail time.", + SerializedName = @"timeFailed", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeFailed { get; set; } + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update start time.", + SerializedName = @"timeStarted", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeStarted { get; set; } + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string ScheduledTimeZone { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// State of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of hostpool update.", + SerializedName = @"updateStatus", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? UpdateStatus { get; set; } + /// The version of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of hostpool update.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + internal partial interface IHostPoolUpdateFullPropertiesInternal + + { + /// The correlationId of the hostpool update. + string CorrelationId { get; set; } + /// The resourceId of hostpool. + string HostPoolResourceId { get; set; } + /// The configurations of a hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties HostPoolUpdateConfiguration { get; set; } + /// Grace period before logging off users in seconds. + int? HostPoolUpdateConfigurationLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + string HostPoolUpdateConfigurationLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + bool? HostPoolUpdateConfigurationSaveOriginalDisk { get; set; } + /// When set schedules the hostpool update at specific time. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties HostPoolUpdateConfigurationScheduledTime { get; set; } + /// Properties of host pool update progress. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress MigrateProgress { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get; set; } + /// The progress percentage. + float? MigrateProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + int? MigrateProgressSessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + int? MigrateProgressSessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + int? MigrateProgressSessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + int? MigrateProgressSessionHostsToMigrate { get; set; } + /// The hostpool update create time. + global::System.DateTime? MigrateProgressTimeCreated { get; set; } + /// The hostpool update end time. + global::System.DateTime? MigrateProgressTimeEnded { get; set; } + /// The hostpool update fail time. + global::System.DateTime? MigrateProgressTimeFailed { get; set; } + /// The hostpool update start time. + global::System.DateTime? MigrateProgressTimeStarted { get; set; } + /// The time the hostpool update is schedule for. + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string ScheduledTimeZone { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// State of hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? UpdateStatus { get; set; } + /// The version of hostpool update. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.json.cs new file mode 100644 index 000000000000..0408bbcff386 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullProperties.json.cs @@ -0,0 +1,118 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Hostpool update full properties including session host config, hostpool update parameters, and migration progress. + /// + public partial class HostPoolUpdateFullProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateFullProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateFullProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_migrateProgress = If( json?.PropertyT("migrateProgress"), out var __jsonMigrateProgress) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgress.FromJson(__jsonMigrateProgress) : MigrateProgress;} + {_hostPoolUpdateConfiguration = If( json?.PropertyT("hostPoolUpdateConfiguration"), out var __jsonHostPoolUpdateConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationProperties.FromJson(__jsonHostPoolUpdateConfiguration) : HostPoolUpdateConfiguration;} + {_updateStatus = If( json?.PropertyT("updateStatus"), out var __jsonUpdateStatus) ? (string)__jsonUpdateStatus : (string)UpdateStatus;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_hostPoolResourceId = If( json?.PropertyT("hostPoolResourceId"), out var __jsonHostPoolResourceId) ? (string)__jsonHostPoolResourceId : (string)HostPoolResourceId;} + {_correlationId = If( json?.PropertyT("correlationId"), out var __jsonCorrelationId) ? (string)__jsonCorrelationId : (string)CorrelationId;} + {_sessionHostConfiguration = If( json?.PropertyT("sessionHostConfiguration"), out var __jsonSessionHostConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationProperties.FromJson(__jsonSessionHostConfiguration) : SessionHostConfiguration;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._migrateProgress ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._migrateProgress.ToJson(null,serializationMode) : null, "migrateProgress" ,container.Add ); + } + AddIf( null != this._hostPoolUpdateConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._hostPoolUpdateConfiguration.ToJson(null,serializationMode) : null, "hostPoolUpdateConfiguration" ,container.Add ); + AddIf( null != (((object)this._updateStatus)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._updateStatus.ToString()) : null, "updateStatus" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AddIf( null != (((object)this._hostPoolResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolResourceId.ToString()) : null, "hostPoolResourceId" ,container.Add ); + AddIf( null != (((object)this._correlationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._correlationId.ToString()) : null, "correlationId" ,container.Add ); + AddIf( null != this._sessionHostConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._sessionHostConfiguration.ToJson(null,serializationMode) : null, "sessionHostConfiguration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.PowerShell.cs new file mode 100644 index 000000000000..e608e53900d6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of HostPoolUpdateFullPropertiesList definitions. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFullPropertiesListTypeConverter))] + public partial class HostPoolUpdateFullPropertiesList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateFullPropertiesList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateFullPropertiesList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateFullPropertiesList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)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 HostPoolUpdateFullPropertiesList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of HostPoolUpdateFullPropertiesList definitions. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateFullPropertiesListTypeConverter))] + public partial interface IHostPoolUpdateFullPropertiesList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.TypeConverter.cs new file mode 100644 index 000000000000..f37c254813df --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateFullPropertiesListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateFullPropertiesList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateFullPropertiesList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateFullPropertiesList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.cs new file mode 100644 index 000000000000..f1883aa8ee44 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of HostPoolUpdateFullPropertiesList definitions. + public partial class HostPoolUpdateFullPropertiesList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[] _value; + + /// List of HostPoolUpdateFullPropertiesList definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public HostPoolUpdateFullPropertiesList() + { + + } + } + /// List of HostPoolUpdateFullPropertiesList definitions. + public partial interface IHostPoolUpdateFullPropertiesList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of HostPoolUpdateFullPropertiesList definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of HostPoolUpdateFullPropertiesList definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[] Value { get; set; } + + } + /// List of HostPoolUpdateFullPropertiesList definitions. + internal partial interface IHostPoolUpdateFullPropertiesListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of HostPoolUpdateFullPropertiesList definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.json.cs new file mode 100644 index 000000000000..49ef8e03cae3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateFullPropertiesList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of HostPoolUpdateFullPropertiesList definitions. + public partial class HostPoolUpdateFullPropertiesList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateFullPropertiesList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateFullPropertiesList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.PowerShell.cs new file mode 100644 index 000000000000..2ae4d909cda5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of host pool update progress. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateProgressTypeConverter))] + public partial class HostPoolUpdateProgress + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateProgress(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateProgress(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateProgress(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeCreated = (global::System.DateTime?) content.GetValueForProperty("TimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeStarted = (global::System.DateTime?) content.GetValueForProperty("TimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeFailed = (global::System.DateTime?) content.GetValueForProperty("TimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeEnded = (global::System.DateTime?) content.GetValueForProperty("TimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("ListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ProgressPercentage = (float?) content.GetValueForProperty("ProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsToMigrate = (int?) content.GetValueForProperty("SessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrating = (int?) content.GetValueForProperty("SessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrated = (int?) content.GetValueForProperty("SessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsRollbackFailed = (int?) content.GetValueForProperty("SessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsRollbackFailed, (__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 HostPoolUpdateProgress(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeCreated = (global::System.DateTime?) content.GetValueForProperty("TimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeStarted = (global::System.DateTime?) content.GetValueForProperty("TimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeFailed = (global::System.DateTime?) content.GetValueForProperty("TimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeEnded = (global::System.DateTime?) content.GetValueForProperty("TimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).TimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("ListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ProgressPercentage = (float?) content.GetValueForProperty("ProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).ProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsToMigrate = (int?) content.GetValueForProperty("SessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrating = (int?) content.GetValueForProperty("SessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrated = (int?) content.GetValueForProperty("SessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsRollbackFailed = (int?) content.GetValueForProperty("SessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal)this).SessionHostsRollbackFailed, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of host pool update progress. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateProgressTypeConverter))] + public partial interface IHostPoolUpdateProgress + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.TypeConverter.cs new file mode 100644 index 000000000000..b48680b88b26 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateProgressTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateProgress.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateProgress.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateProgress.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.cs new file mode 100644 index 000000000000..6f24003bd6c7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.cs @@ -0,0 +1,199 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of host pool update progress. + public partial class HostPoolUpdateProgress : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgressInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] _listOfError; + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] ListOfError { get => this._listOfError; set => this._listOfError = value; } + + /// Backing field for property. + private float? _progressPercentage; + + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public float? ProgressPercentage { get => this._progressPercentage; set => this._progressPercentage = value; } + + /// Backing field for property. + private int? _sessionHostsMigrated; + + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? SessionHostsMigrated { get => this._sessionHostsMigrated; set => this._sessionHostsMigrated = value; } + + /// Backing field for property. + private int? _sessionHostsMigrating; + + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? SessionHostsMigrating { get => this._sessionHostsMigrating; set => this._sessionHostsMigrating = value; } + + /// Backing field for property. + private int? _sessionHostsRollbackFailed; + + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? SessionHostsRollbackFailed { get => this._sessionHostsRollbackFailed; set => this._sessionHostsRollbackFailed = value; } + + /// Backing field for property. + private int? _sessionHostsToMigrate; + + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? SessionHostsToMigrate { get => this._sessionHostsToMigrate; set => this._sessionHostsToMigrate = value; } + + /// Backing field for property. + private global::System.DateTime? _timeCreated; + + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? TimeCreated { get => this._timeCreated; set => this._timeCreated = value; } + + /// Backing field for property. + private global::System.DateTime? _timeEnded; + + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? TimeEnded { get => this._timeEnded; set => this._timeEnded = value; } + + /// Backing field for property. + private global::System.DateTime? _timeFailed; + + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? TimeFailed { get => this._timeFailed; set => this._timeFailed = value; } + + /// Backing field for property. + private global::System.DateTime? _timeStarted; + + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? TimeStarted { get => this._timeStarted; set => this._timeStarted = value; } + + /// Creates an new instance. + public HostPoolUpdateProgress() + { + + } + } + /// Properties of host pool update progress. + public partial interface IHostPoolUpdateProgress : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"listOfErrors", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] ListOfError { get; set; } + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The progress percentage.", + SerializedName = @"progressPercentage", + PossibleTypes = new [] { typeof(float) })] + float? ProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrated by hostpool update.", + SerializedName = @"sessionHostsMigrated", + PossibleTypes = new [] { typeof(int) })] + int? SessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrating by hostpool update.", + SerializedName = @"sessionHostsMigrating", + PossibleTypes = new [] { typeof(int) })] + int? SessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts that failed to rollback.", + SerializedName = @"sessionHostsRollbackFailed", + PossibleTypes = new [] { typeof(int) })] + int? SessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts to migrate by hostpool update.", + SerializedName = @"sessionHostsToMigrate", + PossibleTypes = new [] { typeof(int) })] + int? SessionHostsToMigrate { get; set; } + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update create time.", + SerializedName = @"timeCreated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? TimeCreated { get; set; } + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update end time.", + SerializedName = @"timeEnded", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? TimeEnded { get; set; } + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update fail time.", + SerializedName = @"timeFailed", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? TimeFailed { get; set; } + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update start time.", + SerializedName = @"timeStarted", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? TimeStarted { get; set; } + + } + /// Properties of host pool update progress. + internal partial interface IHostPoolUpdateProgressInternal + + { + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] ListOfError { get; set; } + /// The progress percentage. + float? ProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + int? SessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + int? SessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + int? SessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + int? SessionHostsToMigrate { get; set; } + /// The hostpool update create time. + global::System.DateTime? TimeCreated { get; set; } + /// The hostpool update end time. + global::System.DateTime? TimeEnded { get; set; } + /// The hostpool update fail time. + global::System.DateTime? TimeFailed { get; set; } + /// The hostpool update start time. + global::System.DateTime? TimeStarted { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.json.cs new file mode 100644 index 000000000000..4059d0620c1e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateProgress.json.cs @@ -0,0 +1,127 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of host pool update progress. + public partial class HostPoolUpdateProgress + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateProgress(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateProgress(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_timeCreated = If( json?.PropertyT("timeCreated"), out var __jsonTimeCreated) ? global::System.DateTime.TryParse((string)__jsonTimeCreated, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonTimeCreatedValue) ? __jsonTimeCreatedValue : TimeCreated : TimeCreated;} + {_timeStarted = If( json?.PropertyT("timeStarted"), out var __jsonTimeStarted) ? global::System.DateTime.TryParse((string)__jsonTimeStarted, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonTimeStartedValue) ? __jsonTimeStartedValue : TimeStarted : TimeStarted;} + {_timeFailed = If( json?.PropertyT("timeFailed"), out var __jsonTimeFailed) ? global::System.DateTime.TryParse((string)__jsonTimeFailed, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonTimeFailedValue) ? __jsonTimeFailedValue : TimeFailed : TimeFailed;} + {_timeEnded = If( json?.PropertyT("timeEnded"), out var __jsonTimeEnded) ? global::System.DateTime.TryParse((string)__jsonTimeEnded, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonTimeEndedValue) ? __jsonTimeEndedValue : TimeEnded : TimeEnded;} + {_listOfError = If( json?.PropertyT("listOfErrors"), out var __jsonListOfErrors) ? If( __jsonListOfErrors as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFault.FromJson(__u) )) ))() : null : ListOfError;} + {_progressPercentage = If( json?.PropertyT("progressPercentage"), out var __jsonProgressPercentage) ? (float?)__jsonProgressPercentage : ProgressPercentage;} + {_sessionHostsToMigrate = If( json?.PropertyT("sessionHostsToMigrate"), out var __jsonSessionHostsToMigrate) ? (int?)__jsonSessionHostsToMigrate : SessionHostsToMigrate;} + {_sessionHostsMigrating = If( json?.PropertyT("sessionHostsMigrating"), out var __jsonSessionHostsMigrating) ? (int?)__jsonSessionHostsMigrating : SessionHostsMigrating;} + {_sessionHostsMigrated = If( json?.PropertyT("sessionHostsMigrated"), out var __jsonSessionHostsMigrated) ? (int?)__jsonSessionHostsMigrated : SessionHostsMigrated;} + {_sessionHostsRollbackFailed = If( json?.PropertyT("sessionHostsRollbackFailed"), out var __jsonSessionHostsRollbackFailed) ? (int?)__jsonSessionHostsRollbackFailed : SessionHostsRollbackFailed;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._timeCreated ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeCreated?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "timeCreated" ,container.Add ); + AddIf( null != this._timeStarted ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeStarted?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "timeStarted" ,container.Add ); + AddIf( null != this._timeFailed ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeFailed?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "timeFailed" ,container.Add ); + AddIf( null != this._timeEnded ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeEnded?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "timeEnded" ,container.Add ); + if (null != this._listOfError) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._listOfError ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("listOfErrors",__w); + } + AddIf( null != this._progressPercentage ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((float)this._progressPercentage) : null, "progressPercentage" ,container.Add ); + AddIf( null != this._sessionHostsToMigrate ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._sessionHostsToMigrate) : null, "sessionHostsToMigrate" ,container.Add ); + AddIf( null != this._sessionHostsMigrating ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._sessionHostsMigrating) : null, "sessionHostsMigrating" ,container.Add ); + AddIf( null != this._sessionHostsMigrated ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._sessionHostsMigrated) : null, "sessionHostsMigrated" ,container.Add ); + AddIf( null != this._sessionHostsRollbackFailed ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._sessionHostsRollbackFailed) : null, "sessionHostsRollbackFailed" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.PowerShell.cs new file mode 100644 index 000000000000..abfec0905a2d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Errors and warnings returned by hostpool update validation. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateValidationResponseTypeConverter))] + public partial class HostPoolUpdateValidationResponse + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HostPoolUpdateValidationResponse(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HostPoolUpdateValidationResponse(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HostPoolUpdateValidationResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Warning = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("Warning",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Warning, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Error, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HostPoolUpdateValidationResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Warning = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("Warning",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Warning, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal)this).Error, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Errors and warnings returned by hostpool update validation. + [System.ComponentModel.TypeConverter(typeof(HostPoolUpdateValidationResponseTypeConverter))] + public partial interface IHostPoolUpdateValidationResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.TypeConverter.cs new file mode 100644 index 000000000000..6f89d7a1f38b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HostPoolUpdateValidationResponseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HostPoolUpdateValidationResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HostPoolUpdateValidationResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HostPoolUpdateValidationResponse.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.cs new file mode 100644 index 000000000000..b47afb1aeeae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Errors and warnings returned by hostpool update validation. + public partial class HostPoolUpdateValidationResponse : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponseInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] _error; + + /// Errors from the hostpool update validation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Error { get => this._error; set => this._error = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] _warning; + + /// Warnings from the hostpool update validation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Warning { get => this._warning; set => this._warning = value; } + + /// Creates an new instance. + public HostPoolUpdateValidationResponse() + { + + } + } + /// Errors and warnings returned by hostpool update validation. + public partial interface IHostPoolUpdateValidationResponse : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Errors from the hostpool update validation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Errors from the hostpool update validation.", + SerializedName = @"errors", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Error { get; set; } + /// Warnings from the hostpool update validation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Warnings from the hostpool update validation.", + SerializedName = @"warnings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Warning { get; set; } + + } + /// Errors and warnings returned by hostpool update validation. + internal partial interface IHostPoolUpdateValidationResponseInternal + + { + /// Errors from the hostpool update validation. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Error { get; set; } + /// Warnings from the hostpool update validation. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] Warning { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.json.cs new file mode 100644 index 000000000000..6ae7537d9224 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/HostPoolUpdateValidationResponse.json.cs @@ -0,0 +1,119 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Errors and warnings returned by hostpool update validation. + public partial class HostPoolUpdateValidationResponse + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new HostPoolUpdateValidationResponse(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal HostPoolUpdateValidationResponse(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_warning = If( json?.PropertyT("warnings"), out var __jsonWarnings) ? If( __jsonWarnings as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFault.FromJson(__u) )) ))() : null : Warning;} + {_error = If( json?.PropertyT("errors"), out var __jsonErrors) ? If( __jsonErrors as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFault.FromJson(__p) )) ))() : null : Error;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._warning) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._warning ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("warnings",__w); + } + if (null != this._error) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._error ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("errors",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.PowerShell.cs new file mode 100644 index 000000000000..212b73530ee7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.PowerShell.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Image configurations of session host in a HostPool. + [System.ComponentModel.TypeConverter(typeof(ImageInfoPropertiesTypeConverter))] + public partial class ImageInfoProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ImageInfoProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ImageInfoProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ImageInfoProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties) content.GetValueForProperty("MarketPlaceInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).StorageBlobUri = (string) content.GetValueForProperty("StorageBlobUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).StorageBlobUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).CustomId = (string) content.GetValueForProperty("CustomId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).CustomId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoOffer = (string) content.GetValueForProperty("MarketPlaceInfoOffer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoOffer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoPublisher = (string) content.GetValueForProperty("MarketPlaceInfoPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoSku = (string) content.GetValueForProperty("MarketPlaceInfoSku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoSku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoExactVersion = (string) content.GetValueForProperty("MarketPlaceInfoExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoExactVersion, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ImageInfoProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties) content.GetValueForProperty("MarketPlaceInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).StorageBlobUri = (string) content.GetValueForProperty("StorageBlobUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).StorageBlobUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).CustomId = (string) content.GetValueForProperty("CustomId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).CustomId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoOffer = (string) content.GetValueForProperty("MarketPlaceInfoOffer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoOffer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoPublisher = (string) content.GetValueForProperty("MarketPlaceInfoPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoSku = (string) content.GetValueForProperty("MarketPlaceInfoSku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoSku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoExactVersion = (string) content.GetValueForProperty("MarketPlaceInfoExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)this).MarketPlaceInfoExactVersion, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Image configurations of session host in a HostPool. + [System.ComponentModel.TypeConverter(typeof(ImageInfoPropertiesTypeConverter))] + public partial interface IImageInfoProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.TypeConverter.cs new file mode 100644 index 000000000000..e744d445accc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ImageInfoPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ImageInfoProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ImageInfoProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ImageInfoProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.cs new file mode 100644 index 000000000000..04e4a1a03310 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.cs @@ -0,0 +1,160 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Image configurations of session host in a HostPool. + public partial class ImageInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal + { + + /// Backing field for property. + private string _customId; + + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CustomId { get => this._customId; set => this._customId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties _marketPlaceInfo; + + /// The values to uniquely identify a gallery image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties MarketPlaceInfo { get => (this._marketPlaceInfo = this._marketPlaceInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoProperties()); set => this._marketPlaceInfo = value; } + + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoExactVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).ExactVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).ExactVersion = value ?? null; } + + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoOffer { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Offer; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Offer = value ?? null; } + + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Publisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Publisher = value ?? null; } + + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoSku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Sku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)MarketPlaceInfo).Sku = value ?? null; } + + /// Internal Acessors for MarketPlaceInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal.MarketPlaceInfo { get => (this._marketPlaceInfo = this._marketPlaceInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoProperties()); set { {_marketPlaceInfo = value;} } } + + /// Backing field for property. + private string _storageBlobUri; + + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string StorageBlobUri { get => this._storageBlobUri; set => this._storageBlobUri = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? _type; + + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public ImageInfoProperties() + { + + } + } + /// Image configurations of session host in a HostPool. + public partial interface IImageInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of the custom image or shared image. Image type must be CustomImage.", + SerializedName = @"customId", + PossibleTypes = new [] { typeof(string) })] + string CustomId { get; set; } + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The exact version of the image.", + SerializedName = @"exactVersion", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoExactVersion { get; set; } + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The offer of the image.", + SerializedName = @"offer", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoOffer { get; set; } + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the image.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoPublisher { get; set; } + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The sku of the image.", + SerializedName = @"sku", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoSku { get; set; } + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The uri to the storage blob which contains the VHD. Image type must be StorageBlob.", + SerializedName = @"storageBlobUri", + PossibleTypes = new [] { typeof(string) })] + string StorageBlobUri { get; set; } + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of image session hosts use in the hostpool.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? Type { get; set; } + + } + /// Image configurations of session host in a HostPool. + internal partial interface IImageInfoPropertiesInternal + + { + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + string CustomId { get; set; } + /// The values to uniquely identify a gallery image. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties MarketPlaceInfo { get; set; } + /// The exact version of the image. + string MarketPlaceInfoExactVersion { get; set; } + /// The offer of the image. + string MarketPlaceInfoOffer { get; set; } + /// The publisher of the image. + string MarketPlaceInfoPublisher { get; set; } + /// The sku of the image. + string MarketPlaceInfoSku { get; set; } + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + string StorageBlobUri { get; set; } + /// The type of image session hosts use in the hostpool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.json.cs new file mode 100644 index 000000000000..780729c27489 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ImageInfoProperties.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Image configurations of session host in a HostPool. + public partial class ImageInfoProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ImageInfoProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ImageInfoProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_marketPlaceInfo = If( json?.PropertyT("marketPlaceInfo"), out var __jsonMarketPlaceInfo) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoProperties.FromJson(__jsonMarketPlaceInfo) : MarketPlaceInfo;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_storageBlobUri = If( json?.PropertyT("storageBlobUri"), out var __jsonStorageBlobUri) ? (string)__jsonStorageBlobUri : (string)StorageBlobUri;} + {_customId = If( json?.PropertyT("customId"), out var __jsonCustomId) ? (string)__jsonCustomId : (string)CustomId;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._marketPlaceInfo ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._marketPlaceInfo.ToJson(null,serializationMode) : null, "marketPlaceInfo" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._storageBlobUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._storageBlobUri.ToString()) : null, "storageBlobUri" ,container.Add ); + AddIf( null != (((object)this._customId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._customId.ToString()) : null, "customId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.PowerShell.cs new file mode 100644 index 000000000000..4895bdff6ad1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Credentials kept in the keyvault. + [System.ComponentModel.TypeConverter(typeof(KeyvaultCredentialPropertiesTypeConverter))] + public partial class KeyvaultCredentialProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new KeyvaultCredentialProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new KeyvaultCredentialProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal KeyvaultCredentialProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).UserName = (string) content.GetValueForProperty("UserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).UserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordKeyVaultResourceId = (string) content.GetValueForProperty("PasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordSecretName = (string) content.GetValueForProperty("PasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordSecretName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal KeyvaultCredentialProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).UserName = (string) content.GetValueForProperty("UserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).UserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordKeyVaultResourceId = (string) content.GetValueForProperty("PasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordSecretName = (string) content.GetValueForProperty("PasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal)this).PasswordSecretName, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Credentials kept in the keyvault. + [System.ComponentModel.TypeConverter(typeof(KeyvaultCredentialPropertiesTypeConverter))] + public partial interface IKeyvaultCredentialProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.TypeConverter.cs new file mode 100644 index 000000000000..b59fe238b701 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class KeyvaultCredentialPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return KeyvaultCredentialProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return KeyvaultCredentialProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return KeyvaultCredentialProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.cs new file mode 100644 index 000000000000..b2190abb4b72 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Credentials kept in the keyvault. + public partial class KeyvaultCredentialProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialPropertiesInternal + { + + /// Backing field for property. + private string _passwordKeyVaultResourceId; + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PasswordKeyVaultResourceId { get => this._passwordKeyVaultResourceId; set => this._passwordKeyVaultResourceId = value; } + + /// Backing field for property. + private string _passwordSecretName; + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PasswordSecretName { get => this._passwordSecretName; set => this._passwordSecretName = value; } + + /// Backing field for property. + private string _userName; + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string UserName { get => this._userName; set => this._userName = value; } + + /// Creates an new instance. + public KeyvaultCredentialProperties() + { + + } + } + /// Credentials kept in the keyvault. + public partial interface IKeyvaultCredentialProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string PasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string PasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string UserName { get; set; } + + } + /// Credentials kept in the keyvault. + internal partial interface IKeyvaultCredentialPropertiesInternal + + { + /// The keyvault resource id to the keyvault secrets. + string PasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string PasswordSecretName { get; set; } + /// The user name to the account. + string UserName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.json.cs new file mode 100644 index 000000000000..dfd0d188c65a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/KeyvaultCredentialProperties.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Credentials kept in the keyvault. + public partial class KeyvaultCredentialProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new KeyvaultCredentialProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal KeyvaultCredentialProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_userName = If( json?.PropertyT("userName"), out var __jsonUserName) ? (string)__jsonUserName : (string)UserName;} + {_passwordKeyVaultResourceId = If( json?.PropertyT("passwordKeyVaultResourceId"), out var __jsonPasswordKeyVaultResourceId) ? (string)__jsonPasswordKeyVaultResourceId : (string)PasswordKeyVaultResourceId;} + {_passwordSecretName = If( json?.PropertyT("passwordSecretName"), out var __jsonPasswordSecretName) ? (string)__jsonPasswordSecretName : (string)PasswordSecretName;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._userName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._userName.ToString()) : null, "userName" ,container.Add ); + AddIf( null != (((object)this._passwordKeyVaultResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._passwordKeyVaultResourceId.ToString()) : null, "passwordKeyVaultResourceId" ,container.Add ); + AddIf( null != (((object)this._passwordSecretName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._passwordSecretName.ToString()) : null, "passwordSecretName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.PowerShell.cs new file mode 100644 index 000000000000..259060d71df2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Specifications of the Log for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(LogSpecificationTypeConverter))] + public partial class LogSpecification + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LogSpecification(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LogSpecification(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LogSpecification(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).BlobDuration, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal LogSpecification(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal)this).BlobDuration, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Specifications of the Log for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(LogSpecificationTypeConverter))] + public partial interface ILogSpecification + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.TypeConverter.cs new file mode 100644 index 000000000000..85709dad615c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LogSpecificationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LogSpecification.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LogSpecification.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LogSpecification.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.cs new file mode 100644 index 000000000000..482809d95282 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Specifications of the Log for Azure Monitoring + public partial class LogSpecification : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecificationInternal + { + + /// Backing field for property. + private string _blobDuration; + + /// Blob duration of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string BlobDuration { get => this._blobDuration; set => this._blobDuration = value; } + + /// Backing field for property. + private string _displayName; + + /// Localized friendly display name of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _name; + + /// Name of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public LogSpecification() + { + + } + } + /// Specifications of the Log for Azure Monitoring + public partial interface ILogSpecification : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Blob duration of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Blob duration of the log", + SerializedName = @"blobDuration", + PossibleTypes = new [] { typeof(string) })] + string BlobDuration { get; set; } + /// Localized friendly display name of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly display name of the log", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Name of the log + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the log", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Specifications of the Log for Azure Monitoring + internal partial interface ILogSpecificationInternal + + { + /// Blob duration of the log + string BlobDuration { get; set; } + /// Localized friendly display name of the log + string DisplayName { get; set; } + /// Name of the log + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.json.cs new file mode 100644 index 000000000000..24e5e2d485cb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/LogSpecification.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Specifications of the Log for Azure Monitoring + public partial class LogSpecification + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new LogSpecification(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal LogSpecification(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_blobDuration = If( json?.PropertyT("blobDuration"), out var __jsonBlobDuration) ? (string)__jsonBlobDuration : (string)BlobDuration;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._blobDuration)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._blobDuration.ToString()) : null, "blobDuration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.PowerShell.cs new file mode 100644 index 000000000000..f648f240f30f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties for host pool update maintenance alerts. + [System.ComponentModel.TypeConverter(typeof(MaintenanceAlertsPropertiesTypeConverter))] + public partial class MaintenanceAlertsProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MaintenanceAlertsProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MaintenanceAlertsProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MaintenanceAlertsProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Duration = (int?) content.GetValueForProperty("Duration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Duration, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).BeforeKickOff = (bool?) content.GetValueForProperty("BeforeKickOff",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).BeforeKickOff, (__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 MaintenanceAlertsProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Duration = (int?) content.GetValueForProperty("Duration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).Duration, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).BeforeKickOff = (bool?) content.GetValueForProperty("BeforeKickOff",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal)this).BeforeKickOff, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties for host pool update maintenance alerts. + [System.ComponentModel.TypeConverter(typeof(MaintenanceAlertsPropertiesTypeConverter))] + public partial interface IMaintenanceAlertsProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.TypeConverter.cs new file mode 100644 index 000000000000..d97af58c7542 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MaintenanceAlertsPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MaintenanceAlertsProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MaintenanceAlertsProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MaintenanceAlertsProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.cs new file mode 100644 index 000000000000..4911596fc67d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.cs @@ -0,0 +1,86 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties for host pool update maintenance alerts. + public partial class MaintenanceAlertsProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsPropertiesInternal + { + + /// Backing field for property. + private bool? _beforeKickOff; + + /// + /// Whether to send maintenance alert after or before hostpool update. False by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? BeforeKickOff { get => this._beforeKickOff; set => this._beforeKickOff = value; } + + /// Backing field for property. + private int? _duration; + + /// The duration of the hostpool update in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Duration { get => this._duration; set => this._duration = value; } + + /// Backing field for property. + private string _message; + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Creates an new instance. + public MaintenanceAlertsProperties() + { + + } + } + /// Properties for host pool update maintenance alerts. + public partial interface IMaintenanceAlertsProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// + /// Whether to send maintenance alert after or before hostpool update. False by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to send maintenance alert after or before hostpool update. False by default.", + SerializedName = @"beforeKickOff", + PossibleTypes = new [] { typeof(bool) })] + bool? BeforeKickOff { get; set; } + /// The duration of the hostpool update in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The duration of the hostpool update in seconds.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(int) })] + int? Duration { get; set; } + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + /// Properties for host pool update maintenance alerts. + internal partial interface IMaintenanceAlertsPropertiesInternal + + { + /// + /// Whether to send maintenance alert after or before hostpool update. False by default. + /// + bool? BeforeKickOff { get; set; } + /// The duration of the hostpool update in seconds. + int? Duration { get; set; } + /// The path to the legacy object to migrate. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.json.cs new file mode 100644 index 000000000000..e742cca35fee --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceAlertsProperties.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties for host pool update maintenance alerts. + public partial class MaintenanceAlertsProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MaintenanceAlertsProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MaintenanceAlertsProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_duration = If( json?.PropertyT("duration"), out var __jsonDuration) ? (int?)__jsonDuration : Duration;} + {_beforeKickOff = If( json?.PropertyT("beforeKickOff"), out var __jsonBeforeKickOff) ? (bool?)__jsonBeforeKickOff : BeforeKickOff;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AddIf( null != this._duration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._duration) : null, "duration" ,container.Add ); + AddIf( null != this._beforeKickOff ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._beforeKickOff) : null, "beforeKickOff" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.PowerShell.cs new file mode 100644 index 000000000000..626b06d4ddba --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Maintenance window starting hour and day of week. + [System.ComponentModel.TypeConverter(typeof(MaintenanceWindowPropertiesTypeConverter))] + public partial class MaintenanceWindowProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MaintenanceWindowProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MaintenanceWindowProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MaintenanceWindowProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).Hour = (int?) content.GetValueForProperty("Hour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).Hour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).DayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("DayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).DayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MaintenanceWindowProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).Hour = (int?) content.GetValueForProperty("Hour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).Hour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).DayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("DayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)this).DayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Maintenance window starting hour and day of week. + [System.ComponentModel.TypeConverter(typeof(MaintenanceWindowPropertiesTypeConverter))] + public partial interface IMaintenanceWindowProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.TypeConverter.cs new file mode 100644 index 000000000000..2103e481b990 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MaintenanceWindowPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MaintenanceWindowProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MaintenanceWindowProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MaintenanceWindowProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.cs new file mode 100644 index 000000000000..5b5b55c5b9fd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Maintenance window starting hour and day of week. + public partial class MaintenanceWindowProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? _dayOfWeek; + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? DayOfWeek { get => this._dayOfWeek; set => this._dayOfWeek = value; } + + /// Backing field for property. + private int? _hour; + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Hour { get => this._hour; set => this._hour = value; } + + /// Creates an new instance. + public MaintenanceWindowProperties() + { + + } + } + /// Maintenance window starting hour and day of week. + public partial interface IMaintenanceWindowProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? DayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? Hour { get; set; } + + } + /// Maintenance window starting hour and day of week. + internal partial interface IMaintenanceWindowPropertiesInternal + + { + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? DayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? Hour { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.json.cs new file mode 100644 index 000000000000..d70ca27a8878 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MaintenanceWindowProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Maintenance window starting hour and day of week. + public partial class MaintenanceWindowProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MaintenanceWindowProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MaintenanceWindowProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_hour = If( json?.PropertyT("hour"), out var __jsonHour) ? (int?)__jsonHour : Hour;} + {_dayOfWeek = If( json?.PropertyT("dayOfWeek"), out var __jsonDayOfWeek) ? (string)__jsonDayOfWeek : (string)DayOfWeek;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._hour ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._hour) : null, "hour" ,container.Add ); + AddIf( null != (((object)this._dayOfWeek)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._dayOfWeek.ToString()) : null, "dayOfWeek" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.PowerShell.cs new file mode 100644 index 000000000000..0f6b46692870 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Image configurations of HostPool. + [System.ComponentModel.TypeConverter(typeof(MarketPlaceInfoPropertiesTypeConverter))] + public partial class MarketPlaceInfoProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MarketPlaceInfoProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MarketPlaceInfoProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MarketPlaceInfoProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Offer = (string) content.GetValueForProperty("Offer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Offer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Sku = (string) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Sku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).ExactVersion = (string) content.GetValueForProperty("ExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).ExactVersion, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MarketPlaceInfoProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Offer = (string) content.GetValueForProperty("Offer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Offer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Sku = (string) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).Sku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).ExactVersion = (string) content.GetValueForProperty("ExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal)this).ExactVersion, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Image configurations of HostPool. + [System.ComponentModel.TypeConverter(typeof(MarketPlaceInfoPropertiesTypeConverter))] + public partial interface IMarketPlaceInfoProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.TypeConverter.cs new file mode 100644 index 000000000000..fe1761b54e94 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MarketPlaceInfoPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MarketPlaceInfoProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MarketPlaceInfoProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MarketPlaceInfoProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.cs new file mode 100644 index 000000000000..cfbebf8a7e6e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Image configurations of HostPool. + public partial class MarketPlaceInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoPropertiesInternal + { + + /// Backing field for property. + private string _exactVersion; + + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ExactVersion { get => this._exactVersion; set => this._exactVersion = value; } + + /// Backing field for property. + private string _offer; + + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Offer { get => this._offer; set => this._offer = value; } + + /// Backing field for property. + private string _publisher; + + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Publisher { get => this._publisher; set => this._publisher = value; } + + /// Backing field for property. + private string _sku; + + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Sku { get => this._sku; set => this._sku = value; } + + /// Creates an new instance. + public MarketPlaceInfoProperties() + { + + } + } + /// Image configurations of HostPool. + public partial interface IMarketPlaceInfoProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The exact version of the image.", + SerializedName = @"exactVersion", + PossibleTypes = new [] { typeof(string) })] + string ExactVersion { get; set; } + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The offer of the image.", + SerializedName = @"offer", + PossibleTypes = new [] { typeof(string) })] + string Offer { get; set; } + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the image.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string Publisher { get; set; } + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The sku of the image.", + SerializedName = @"sku", + PossibleTypes = new [] { typeof(string) })] + string Sku { get; set; } + + } + /// Image configurations of HostPool. + internal partial interface IMarketPlaceInfoPropertiesInternal + + { + /// The exact version of the image. + string ExactVersion { get; set; } + /// The offer of the image. + string Offer { get; set; } + /// The publisher of the image. + string Publisher { get; set; } + /// The sku of the image. + string Sku { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.json.cs new file mode 100644 index 000000000000..8ec90d60c48a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MarketPlaceInfoProperties.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Image configurations of HostPool. + public partial class MarketPlaceInfoProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MarketPlaceInfoProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MarketPlaceInfoProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_offer = If( json?.PropertyT("offer"), out var __jsonOffer) ? (string)__jsonOffer : (string)Offer;} + {_publisher = If( json?.PropertyT("publisher"), out var __jsonPublisher) ? (string)__jsonPublisher : (string)Publisher;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? (string)__jsonSku : (string)Sku;} + {_exactVersion = If( json?.PropertyT("exactVersion"), out var __jsonExactVersion) ? (string)__jsonExactVersion : (string)ExactVersion;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._offer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._offer.ToString()) : null, "offer" ,container.Add ); + AddIf( null != (((object)this._publisher)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publisher.ToString()) : null, "publisher" ,container.Add ); + AddIf( null != (((object)this._sku)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sku.ToString()) : null, "sku" ,container.Add ); + AddIf( null != (((object)this._exactVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._exactVersion.ToString()) : null, "exactVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.PowerShell.cs new file mode 100644 index 000000000000..964a346adf9d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties for arm migration. + [System.ComponentModel.TypeConverter(typeof(MigrationRequestPropertiesTypeConverter))] + public partial class MigrationRequestProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MigrationRequestProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MigrationRequestProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MigrationRequestProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).Operation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).Operation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).MigrationPath = (string) content.GetValueForProperty("MigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).MigrationPath, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MigrationRequestProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).Operation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation?) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).Operation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).MigrationPath = (string) content.GetValueForProperty("MigrationPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal)this).MigrationPath, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties for arm migration. + [System.ComponentModel.TypeConverter(typeof(MigrationRequestPropertiesTypeConverter))] + public partial interface IMigrationRequestProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.TypeConverter.cs new file mode 100644 index 000000000000..aee80c50eedb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MigrationRequestPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MigrationRequestProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MigrationRequestProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MigrationRequestProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.cs new file mode 100644 index 000000000000..488311302c98 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties for arm migration. + public partial class MigrationRequestProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestPropertiesInternal + { + + /// Backing field for property. + private string _migrationPath; + + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MigrationPath { get => this._migrationPath; set => this._migrationPath = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? _operation; + + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? Operation { get => this._operation; set => this._operation = value; } + + /// Creates an new instance. + public MigrationRequestProperties() + { + + } + } + /// Properties for arm migration. + public partial interface IMigrationRequestProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The path to the legacy object to migrate. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + string MigrationPath { get; set; } + /// The type of operation for migration. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? Operation { get; set; } + + } + /// Properties for arm migration. + internal partial interface IMigrationRequestPropertiesInternal + + { + /// The path to the legacy object to migrate. + string MigrationPath { get; set; } + /// The type of operation for migration. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation? Operation { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.json.cs new file mode 100644 index 000000000000..68bcc7c74e92 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MigrationRequestProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties for arm migration. + public partial class MigrationRequestProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMigrationRequestProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MigrationRequestProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MigrationRequestProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_operation = If( json?.PropertyT("operation"), out var __jsonOperation) ? (string)__jsonOperation : (string)Operation;} + {_migrationPath = If( json?.PropertyT("migrationPath"), out var __jsonMigrationPath) ? (string)__jsonMigrationPath : (string)MigrationPath;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._migrationPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._migrationPath.ToString()) : null, "migrationPath" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.PowerShell.cs new file mode 100644 index 000000000000..a1cc28329bd7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents URI referring to MSIX Image + [System.ComponentModel.TypeConverter(typeof(MsixImageUriTypeConverter))] + public partial class MsixImageUri + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixImageUri(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixImageUri(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixImageUri(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUriInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUriInternal)this).Uri, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MsixImageUri(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUriInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUriInternal)this).Uri, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents URI referring to MSIX Image + [System.ComponentModel.TypeConverter(typeof(MsixImageUriTypeConverter))] + public partial interface IMsixImageUri + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.TypeConverter.cs new file mode 100644 index 000000000000..90b7de23f6fd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixImageUriTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixImageUri.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixImageUri.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixImageUri.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.cs new file mode 100644 index 000000000000..70853328a614 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents URI referring to MSIX Image + public partial class MsixImageUri : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUriInternal + { + + /// Backing field for property. + private string _uri; + + /// URI to Image + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Creates an new instance. + public MsixImageUri() + { + + } + } + /// Represents URI referring to MSIX Image + public partial interface IMsixImageUri : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// URI to Image + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI to Image", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + + } + /// Represents URI referring to MSIX Image + internal partial interface IMsixImageUriInternal + + { + /// URI to Image + string Uri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.json.cs new file mode 100644 index 000000000000..3db739c66bc7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixImageUri.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents URI referring to MSIX Image + public partial class MsixImageUri + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixImageUri(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixImageUri(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.PowerShell.cs new file mode 100644 index 000000000000..7eaa21fa81ee --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.PowerShell.cs @@ -0,0 +1,175 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for MSIX Package properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageTypeConverter))] + public partial class MsixPackage + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackage(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackage(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackage(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MsixPackage(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for MSIX Package properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageTypeConverter))] + public partial interface IMsixPackage + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.TypeConverter.cs new file mode 100644 index 000000000000..d690a83d3cb2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackageTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackage.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackage.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackage.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.cs new file mode 100644 index 000000000000..780482d74a8f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.cs @@ -0,0 +1,341 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package properties. + public partial class MsixPackage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).DisplayName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ImagePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).ImagePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).ImagePath = value ?? null; } + + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsActive { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).IsActive; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).IsActive = value ?? default(bool); } + + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsRegularRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).IsRegularRegistration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).IsRegularRegistration = value ?? default(bool); } + + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastUpdated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).LastUpdated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).LastUpdated = value ?? default(global::System.DateTime); } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageApplication; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageApplication = value ?? null /* arrayOf */; } + + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageDependency; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageDependency = value ?? null /* arrayOf */; } + + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageFamilyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageFamilyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageFamilyName = value ?? null; } + + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageName = value ?? null; } + + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string PackageRelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageRelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).PackageRelativePath = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties _property; + + /// Detailed properties for MSIX Package + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)Property).Version = value ?? null; } + + /// Creates an new instance. + public MsixPackage() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Schema for MSIX Package properties. + public partial interface IMsixPackage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly Name to be displayed in the portal. ", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VHD/CIM image path on Network Share.", + SerializedName = @"imagePath", + PossibleTypes = new [] { typeof(string) })] + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Make this version of the package the active one across the hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies how to register Package in feed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Date Package was last updated, found in the appxmanifest.xml. ", + SerializedName = @"lastUpdated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdated { get; set; } + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package applications. ", + SerializedName = @"packageApplications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package dependencies. ", + SerializedName = @"packageDependencies", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ", + SerializedName = @"packageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string PackageFamilyName { get; set; } + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Name from appxmanifest.xml. ", + SerializedName = @"packageName", + PossibleTypes = new [] { typeof(string) })] + string PackageName { get; set; } + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative Path to the package inside the image. ", + SerializedName = @"packageRelativePath", + PossibleTypes = new [] { typeof(string) })] + string PackageRelativePath { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Version found in the appxmanifest.xml. ", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Schema for MSIX Package properties. + internal partial interface IMsixPackageInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// User friendly Name to be displayed in the portal. + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + global::System.DateTime? LastUpdated { get; set; } + /// List of package applications. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + string PackageFamilyName { get; set; } + /// Package Name from appxmanifest.xml. + string PackageName { get; set; } + /// Relative Path to the package inside the image. + string PackageRelativePath { get; set; } + /// Detailed properties for MSIX Package + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties Property { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Package Version found in the appxmanifest.xml. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.json.cs new file mode 100644 index 000000000000..677f331ce0d4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackage.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package properties. + public partial class MsixPackage + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackage(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.PowerShell.cs new file mode 100644 index 000000000000..3297171921ce --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for MSIX Package Application properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageApplicationsTypeConverter))] + public partial class MsixPackageApplications + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackageApplications(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackageApplications(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackageApplications(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppUserModelId = (string) content.GetValueForProperty("AppUserModelId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppUserModelId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).IconImageName = (string) content.GetValueForProperty("IconImageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).IconImageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawIcon = (byte[]) content.GetValueForProperty("RawIcon",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawIcon, i => i); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawPng = (byte[]) content.GetValueForProperty("RawPng",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawPng, i => i); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MsixPackageApplications(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppUserModelId = (string) content.GetValueForProperty("AppUserModelId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).AppUserModelId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).IconImageName = (string) content.GetValueForProperty("IconImageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).IconImageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawIcon = (byte[]) content.GetValueForProperty("RawIcon",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawIcon, i => i); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawPng = (byte[]) content.GetValueForProperty("RawPng",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal)this).RawPng, i => i); + 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for MSIX Package Application properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageApplicationsTypeConverter))] + public partial interface IMsixPackageApplications + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.TypeConverter.cs new file mode 100644 index 000000000000..30e049fdcbaa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackageApplicationsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackageApplications.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackageApplications.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackageApplications.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.cs new file mode 100644 index 000000000000..c14bb78309d4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.cs @@ -0,0 +1,154 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package Application properties. + public partial class MsixPackageApplications : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplicationsInternal + { + + /// Backing field for property. + private string _appId; + + /// Package Application Id, found in appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AppId { get => this._appId; set => this._appId = value; } + + /// Backing field for property. + private string _appUserModelId; + + /// + /// Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AppUserModelId { get => this._appUserModelId; set => this._appUserModelId = value; } + + /// Backing field for property. + private string _description; + + /// Description of Package Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// User friendly name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private string _iconImageName; + + /// User friendly name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconImageName { get => this._iconImageName; set => this._iconImageName = value; } + + /// Backing field for property. + private byte[] _rawIcon; + + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public byte[] RawIcon { get => this._rawIcon; set => this._rawIcon = value; } + + /// Backing field for property. + private byte[] _rawPng; + + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public byte[] RawPng { get => this._rawPng; set => this._rawPng = value; } + + /// Creates an new instance. + public MsixPackageApplications() + { + + } + } + /// Schema for MSIX Package Application properties. + public partial interface IMsixPackageApplications : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Package Application Id, found in appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Application Id, found in appxmanifest.xml.", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string AppId { get; set; } + /// + /// Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml.", + SerializedName = @"appUserModelID", + PossibleTypes = new [] { typeof(string) })] + string AppUserModelId { get; set; } + /// Description of Package Application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Package Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// User friendly name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// User friendly name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name.", + SerializedName = @"iconImageName", + PossibleTypes = new [] { typeof(string) })] + string IconImageName { get; set; } + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"the icon a 64 bit string as a byte array.", + SerializedName = @"rawIcon", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] RawIcon { get; set; } + /// the icon a 64 bit string as a byte array. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"the icon a 64 bit string as a byte array.", + SerializedName = @"rawPng", + PossibleTypes = new [] { typeof(byte[]) })] + byte[] RawPng { get; set; } + + } + /// Schema for MSIX Package Application properties. + internal partial interface IMsixPackageApplicationsInternal + + { + /// Package Application Id, found in appxmanifest.xml. + string AppId { get; set; } + /// + /// Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml. + /// + string AppUserModelId { get; set; } + /// Description of Package Application. + string Description { get; set; } + /// User friendly name. + string FriendlyName { get; set; } + /// User friendly name. + string IconImageName { get; set; } + /// the icon a 64 bit string as a byte array. + byte[] RawIcon { get; set; } + /// the icon a 64 bit string as a byte array. + byte[] RawPng { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.json.cs new file mode 100644 index 000000000000..e3e9e974493b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageApplications.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package Application properties. + public partial class MsixPackageApplications + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackageApplications(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackageApplications(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_appUserModelId = If( json?.PropertyT("appUserModelID"), out var __jsonAppUserModelId) ? (string)__jsonAppUserModelId : (string)AppUserModelId;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_iconImageName = If( json?.PropertyT("iconImageName"), out var __jsonIconImageName) ? (string)__jsonIconImageName : (string)IconImageName;} + {_rawIcon = If( json?.PropertyT("rawIcon"), out var __w) ? System.Convert.FromBase64String( ((string)__w).Replace("_","/").Replace("-","+").PadRight( ((string)__w).Length + ((string)__w).Length * 3 % 4, '=') ) : null;} + {_rawPng = If( json?.PropertyT("rawPng"), out var __u) ? System.Convert.FromBase64String( ((string)__u).Replace("_","/").Replace("-","+").PadRight( ((string)__u).Length + ((string)__u).Length * 3 % 4, '=') ) : null;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._appId.ToString()) : null, "appId" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._appUserModelId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._appUserModelId.ToString()) : null, "appUserModelID" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._iconImageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconImageName.ToString()) : null, "iconImageName" ,container.Add ); + AddIf( null != this._rawIcon ? global::System.Convert.ToBase64String( this._rawIcon) : null ,(v)=> container.Add( "rawIcon",v) ); + AddIf( null != this._rawPng ? global::System.Convert.ToBase64String( this._rawPng) : null ,(v)=> container.Add( "rawPng",v) ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.PowerShell.cs new file mode 100644 index 000000000000..0413a36cfd66 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for MSIX Package Dependencies properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageDependenciesTypeConverter))] + public partial class MsixPackageDependencies + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackageDependencies(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackageDependencies(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackageDependencies(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).DependencyName = (string) content.GetValueForProperty("DependencyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).DependencyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).MinVersion = (string) content.GetValueForProperty("MinVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).MinVersion, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MsixPackageDependencies(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).DependencyName = (string) content.GetValueForProperty("DependencyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).DependencyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).Publisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).MinVersion = (string) content.GetValueForProperty("MinVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal)this).MinVersion, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for MSIX Package Dependencies properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackageDependenciesTypeConverter))] + public partial interface IMsixPackageDependencies + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.TypeConverter.cs new file mode 100644 index 000000000000..97a7a787c524 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackageDependenciesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackageDependencies.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackageDependencies.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackageDependencies.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.cs new file mode 100644 index 000000000000..2bab8f58bffc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package Dependencies properties. + public partial class MsixPackageDependencies : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependenciesInternal + { + + /// Backing field for property. + private string _dependencyName; + + /// Name of package dependency. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DependencyName { get => this._dependencyName; set => this._dependencyName = value; } + + /// Backing field for property. + private string _minVersion; + + /// Dependency version required. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MinVersion { get => this._minVersion; set => this._minVersion = value; } + + /// Backing field for property. + private string _publisher; + + /// Name of dependency publisher. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Publisher { get => this._publisher; set => this._publisher = value; } + + /// Creates an new instance. + public MsixPackageDependencies() + { + + } + } + /// Schema for MSIX Package Dependencies properties. + public partial interface IMsixPackageDependencies : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Name of package dependency. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of package dependency.", + SerializedName = @"dependencyName", + PossibleTypes = new [] { typeof(string) })] + string DependencyName { get; set; } + /// Dependency version required. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dependency version required.", + SerializedName = @"minVersion", + PossibleTypes = new [] { typeof(string) })] + string MinVersion { get; set; } + /// Name of dependency publisher. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of dependency publisher.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string Publisher { get; set; } + + } + /// Schema for MSIX Package Dependencies properties. + internal partial interface IMsixPackageDependenciesInternal + + { + /// Name of package dependency. + string DependencyName { get; set; } + /// Dependency version required. + string MinVersion { get; set; } + /// Name of dependency publisher. + string Publisher { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.json.cs new file mode 100644 index 000000000000..86960e5bd8cf --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageDependencies.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package Dependencies properties. + public partial class MsixPackageDependencies + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackageDependencies(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackageDependencies(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_dependencyName = If( json?.PropertyT("dependencyName"), out var __jsonDependencyName) ? (string)__jsonDependencyName : (string)DependencyName;} + {_publisher = If( json?.PropertyT("publisher"), out var __jsonPublisher) ? (string)__jsonPublisher : (string)Publisher;} + {_minVersion = If( json?.PropertyT("minVersion"), out var __jsonMinVersion) ? (string)__jsonMinVersion : (string)MinVersion;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._dependencyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._dependencyName.ToString()) : null, "dependencyName" ,container.Add ); + AddIf( null != (((object)this._publisher)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publisher.ToString()) : null, "publisher" ,container.Add ); + AddIf( null != (((object)this._minVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._minVersion.ToString()) : null, "minVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.PowerShell.cs new file mode 100644 index 000000000000..016fd41442ef --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of MSIX Package definitions. + [System.ComponentModel.TypeConverter(typeof(MsixPackageListTypeConverter))] + public partial class MsixPackageList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackageList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackageList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackageList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)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 MsixPackageList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of MSIX Package definitions. + [System.ComponentModel.TypeConverter(typeof(MsixPackageListTypeConverter))] + public partial interface IMsixPackageList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.TypeConverter.cs new file mode 100644 index 000000000000..0bfe5e940dad --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackageListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackageList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackageList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackageList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.cs new file mode 100644 index 000000000000..0b973fe56b83 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of MSIX Package definitions. + public partial class MsixPackageList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[] _value; + + /// List of MSIX Package definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public MsixPackageList() + { + + } + } + /// List of MSIX Package definitions. + public partial interface IMsixPackageList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of MSIX Package definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of MSIX Package definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[] Value { get; set; } + + } + /// List of MSIX Package definitions. + internal partial interface IMsixPackageListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of MSIX Package definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.json.cs new file mode 100644 index 000000000000..d19fb0bea000 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of MSIX Package definitions. + public partial class MsixPackageList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackageList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackageList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.PowerShell.cs new file mode 100644 index 000000000000..a2672b7b60b8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// MSIX Package properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePatchTypeConverter))] + public partial class MsixPackagePatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackagePatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackagePatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackagePatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)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 MsixPackagePatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal)this).DisplayName, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// MSIX Package properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePatchTypeConverter))] + public partial interface IMsixPackagePatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.TypeConverter.cs new file mode 100644 index 000000000000..e2409f633b9a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackagePatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackagePatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackagePatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackagePatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.cs new file mode 100644 index 000000000000..f96c019362a1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.cs @@ -0,0 +1,127 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// MSIX Package properties that can be patched. + public partial class MsixPackagePatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Display name for MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).DisplayName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Set a version of the package to be active across hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsActive { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).IsActive; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).IsActive = value ?? default(bool); } + + /// Set Registration mode. Regular or Delayed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? IsRegularRegistration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).IsRegularRegistration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)Property).IsRegularRegistration = value ?? default(bool); } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchProperties()); set { {_property = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties _property; + + /// Detailed properties for MSIX Package + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchProperties()); set => this._property = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public MsixPackagePatch() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// MSIX Package properties that can be patched. + public partial interface IMsixPackagePatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Display name for MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name for MSIX Package.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Set a version of the package to be active across hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set a version of the package to be active across hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Set Registration mode. Regular or Delayed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set Registration mode. Regular or Delayed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + + } + /// MSIX Package properties that can be patched. + internal partial interface IMsixPackagePatchInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Display name for MSIX Package. + string DisplayName { get; set; } + /// Set a version of the package to be active across hostpool. + bool? IsActive { get; set; } + /// Set Registration mode. Regular or Delayed. + bool? IsRegularRegistration { get; set; } + /// Detailed properties for MSIX Package + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.json.cs new file mode 100644 index 000000000000..191e13817898 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// MSIX Package properties that can be patched. + public partial class MsixPackagePatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackagePatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackagePatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatchProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.PowerShell.cs new file mode 100644 index 000000000000..dd68b649c468 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// MSIX Package properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePatchPropertiesTypeConverter))] + public partial class MsixPackagePatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackagePatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackagePatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackagePatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)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 MsixPackagePatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal)this).DisplayName, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// MSIX Package properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePatchPropertiesTypeConverter))] + public partial interface IMsixPackagePatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..cb6e804ff3d9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackagePatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackagePatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackagePatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackagePatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.cs new file mode 100644 index 000000000000..1c4ec07b1ace --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// MSIX Package properties that can be patched. + public partial class MsixPackagePatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchPropertiesInternal + { + + /// Backing field for property. + private string _displayName; + + /// Display name for MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private bool? _isActive; + + /// Set a version of the package to be active across hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsActive { get => this._isActive; set => this._isActive = value; } + + /// Backing field for property. + private bool? _isRegularRegistration; + + /// Set Registration mode. Regular or Delayed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsRegularRegistration { get => this._isRegularRegistration; set => this._isRegularRegistration = value; } + + /// Creates an new instance. + public MsixPackagePatchProperties() + { + + } + } + /// MSIX Package properties that can be patched. + public partial interface IMsixPackagePatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Display name for MSIX Package. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name for MSIX Package.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Set a version of the package to be active across hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set a version of the package to be active across hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Set Registration mode. Regular or Delayed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set Registration mode. Regular or Delayed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + + } + /// MSIX Package properties that can be patched. + internal partial interface IMsixPackagePatchPropertiesInternal + + { + /// Display name for MSIX Package. + string DisplayName { get; set; } + /// Set a version of the package to be active across hostpool. + bool? IsActive { get; set; } + /// Set Registration mode. Regular or Delayed. + bool? IsRegularRegistration { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.json.cs new file mode 100644 index 000000000000..03f970637189 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackagePatchProperties.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// MSIX Package properties that can be patched. + public partial class MsixPackagePatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackagePatchProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackagePatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_isActive = If( json?.PropertyT("isActive"), out var __jsonIsActive) ? (bool?)__jsonIsActive : IsActive;} + {_isRegularRegistration = If( json?.PropertyT("isRegularRegistration"), out var __jsonIsRegularRegistration) ? (bool?)__jsonIsRegularRegistration : IsRegularRegistration;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._isActive ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isActive) : null, "isActive" ,container.Add ); + AddIf( null != this._isRegularRegistration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isRegularRegistration) : null, "isRegularRegistration" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.PowerShell.cs new file mode 100644 index 000000000000..87cc8a40b1d0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for MSIX Package properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePropertiesTypeConverter))] + public partial class MsixPackageProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MsixPackageProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MsixPackageProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MsixPackageProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MsixPackageProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).ImagePath = (string) content.GetValueForProperty("ImagePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).ImagePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageName = (string) content.GetValueForProperty("PackageName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageFamilyName = (string) content.GetValueForProperty("PackageFamilyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageFamilyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageRelativePath = (string) content.GetValueForProperty("PackageRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsRegularRegistration = (bool?) content.GetValueForProperty("IsRegularRegistration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsRegularRegistration, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsActive = (bool?) content.GetValueForProperty("IsActive",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).IsActive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageDependency = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[]) content.GetValueForProperty("PackageDependency",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageDependency, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependenciesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).LastUpdated = (global::System.DateTime?) content.GetValueForProperty("LastUpdated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).LastUpdated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageApplication = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[]) content.GetValueForProperty("PackageApplication",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal)this).PackageApplication, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplicationsTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for MSIX Package properties. + [System.ComponentModel.TypeConverter(typeof(MsixPackagePropertiesTypeConverter))] + public partial interface IMsixPackageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.TypeConverter.cs new file mode 100644 index 000000000000..050259c44dc6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MsixPackagePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MsixPackageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MsixPackageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MsixPackageProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.cs new file mode 100644 index 000000000000..2faa72a005e1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.cs @@ -0,0 +1,222 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package properties. + public partial class MsixPackageProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePropertiesInternal + { + + /// Backing field for property. + private string _displayName; + + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _imagePath; + + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ImagePath { get => this._imagePath; set => this._imagePath = value; } + + /// Backing field for property. + private bool? _isActive; + + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsActive { get => this._isActive; set => this._isActive = value; } + + /// Backing field for property. + private bool? _isRegularRegistration; + + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsRegularRegistration { get => this._isRegularRegistration; set => this._isRegularRegistration = value; } + + /// Backing field for property. + private global::System.DateTime? _lastUpdated; + + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastUpdated { get => this._lastUpdated; set => this._lastUpdated = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] _packageApplication; + + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get => this._packageApplication; set => this._packageApplication = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] _packageDependency; + + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get => this._packageDependency; set => this._packageDependency = value; } + + /// Backing field for property. + private string _packageFamilyName; + + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageFamilyName { get => this._packageFamilyName; set => this._packageFamilyName = value; } + + /// Backing field for property. + private string _packageName; + + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageName { get => this._packageName; set => this._packageName = value; } + + /// Backing field for property. + private string _packageRelativePath; + + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PackageRelativePath { get => this._packageRelativePath; set => this._packageRelativePath = value; } + + /// Backing field for property. + private string _version; + + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public MsixPackageProperties() + { + + } + } + /// Schema for MSIX Package properties. + public partial interface IMsixPackageProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// User friendly Name to be displayed in the portal. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly Name to be displayed in the portal. ", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VHD/CIM image path on Network Share.", + SerializedName = @"imagePath", + PossibleTypes = new [] { typeof(string) })] + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Make this version of the package the active one across the hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies how to register Package in feed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(bool) })] + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Date Package was last updated, found in the appxmanifest.xml. ", + SerializedName = @"lastUpdated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdated { get; set; } + /// List of package applications. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package applications. ", + SerializedName = @"packageApplications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package dependencies. ", + SerializedName = @"packageDependencies", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ", + SerializedName = @"packageFamilyName", + PossibleTypes = new [] { typeof(string) })] + string PackageFamilyName { get; set; } + /// Package Name from appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Name from appxmanifest.xml. ", + SerializedName = @"packageName", + PossibleTypes = new [] { typeof(string) })] + string PackageName { get; set; } + /// Relative Path to the package inside the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative Path to the package inside the image. ", + SerializedName = @"packageRelativePath", + PossibleTypes = new [] { typeof(string) })] + string PackageRelativePath { get; set; } + /// Package Version found in the appxmanifest.xml. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Version found in the appxmanifest.xml. ", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Schema for MSIX Package properties. + internal partial interface IMsixPackagePropertiesInternal + + { + /// User friendly Name to be displayed in the portal. + string DisplayName { get; set; } + /// VHD/CIM image path on Network Share. + string ImagePath { get; set; } + /// Make this version of the package the active one across the hostpool. + bool? IsActive { get; set; } + /// Specifies how to register Package in feed. + bool? IsRegularRegistration { get; set; } + /// Date Package was last updated, found in the appxmanifest.xml. + global::System.DateTime? LastUpdated { get; set; } + /// List of package applications. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get; set; } + /// List of package dependencies. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get; set; } + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + string PackageFamilyName { get; set; } + /// Package Name from appxmanifest.xml. + string PackageName { get; set; } + /// Relative Path to the package inside the image. + string PackageRelativePath { get; set; } + /// Package Version found in the appxmanifest.xml. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.json.cs new file mode 100644 index 000000000000..a9ed8019f53f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/MsixPackageProperties.json.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for MSIX Package properties. + public partial class MsixPackageProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new MsixPackageProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal MsixPackageProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_imagePath = If( json?.PropertyT("imagePath"), out var __jsonImagePath) ? (string)__jsonImagePath : (string)ImagePath;} + {_packageName = If( json?.PropertyT("packageName"), out var __jsonPackageName) ? (string)__jsonPackageName : (string)PackageName;} + {_packageFamilyName = If( json?.PropertyT("packageFamilyName"), out var __jsonPackageFamilyName) ? (string)__jsonPackageFamilyName : (string)PackageFamilyName;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_packageRelativePath = If( json?.PropertyT("packageRelativePath"), out var __jsonPackageRelativePath) ? (string)__jsonPackageRelativePath : (string)PackageRelativePath;} + {_isRegularRegistration = If( json?.PropertyT("isRegularRegistration"), out var __jsonIsRegularRegistration) ? (bool?)__jsonIsRegularRegistration : IsRegularRegistration;} + {_isActive = If( json?.PropertyT("isActive"), out var __jsonIsActive) ? (bool?)__jsonIsActive : IsActive;} + {_packageDependency = If( json?.PropertyT("packageDependencies"), out var __jsonPackageDependencies) ? If( __jsonPackageDependencies as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageDependencies.FromJson(__u) )) ))() : null : PackageDependency;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_lastUpdated = If( json?.PropertyT("lastUpdated"), out var __jsonLastUpdated) ? global::System.DateTime.TryParse((string)__jsonLastUpdated, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastUpdatedValue) ? __jsonLastUpdatedValue : LastUpdated : LastUpdated;} + {_packageApplication = If( json?.PropertyT("packageApplications"), out var __jsonPackageApplications) ? If( __jsonPackageApplications as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackageApplications.FromJson(__p) )) ))() : null : PackageApplication;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._imagePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._imagePath.ToString()) : null, "imagePath" ,container.Add ); + AddIf( null != (((object)this._packageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageName.ToString()) : null, "packageName" ,container.Add ); + AddIf( null != (((object)this._packageFamilyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageFamilyName.ToString()) : null, "packageFamilyName" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._packageRelativePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._packageRelativePath.ToString()) : null, "packageRelativePath" ,container.Add ); + AddIf( null != this._isRegularRegistration ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isRegularRegistration) : null, "isRegularRegistration" ,container.Add ); + AddIf( null != this._isActive ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isActive) : null, "isActive" ,container.Add ); + if (null != this._packageDependency) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._packageDependency ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("packageDependencies",__w); + } + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AddIf( null != this._lastUpdated ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastUpdated?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastUpdated" ,container.Add ); + if (null != this._packageApplication) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._packageApplication ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("packageApplications",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.PowerShell.cs new file mode 100644 index 000000000000..918e3f7b2ad5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of the operation + [System.ComponentModel.TypeConverter(typeof(OperationPropertiesTypeConverter))] + public partial class OperationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the operation + [System.ComponentModel.TypeConverter(typeof(OperationPropertiesTypeConverter))] + public partial interface IOperationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.TypeConverter.cs new file mode 100644 index 000000000000..ed91f6e7bd11 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.cs new file mode 100644 index 000000000000..b28843a84a9b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.cs @@ -0,0 +1,55 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of the operation + public partial class OperationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal + { + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal.ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecification()); set { {_serviceSpecification = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification _serviceSpecification; + + /// Service specification payload + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecification()); set => this._serviceSpecification = value; } + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)ServiceSpecification).LogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)ServiceSpecification).LogSpecification = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public OperationProperties() + { + + } + } + /// Properties of the operation + public partial interface IOperationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + + } + /// Properties of the operation + internal partial interface IOperationPropertiesInternal + + { + /// Service specification payload + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.json.cs new file mode 100644 index 000000000000..db5a18cb7483 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/OperationProperties.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of the operation + public partial class OperationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new OperationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal OperationProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_serviceSpecification = If( json?.PropertyT("serviceSpecification"), out var __jsonServiceSpecification) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecification.FromJson(__jsonServiceSpecification) : ServiceSpecification;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._serviceSpecification ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._serviceSpecification.ToJson(null,serializationMode) : null, "serviceSpecification" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.PowerShell.cs new file mode 100644 index 000000000000..1c38c6f57f34 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.PowerShell.cs @@ -0,0 +1,138 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// List of private endpoint connection associated with the specified storage account + /// + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultWithSystemDataTypeConverter))] + public partial class PrivateEndpointConnectionListResultWithSystemData + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionListResultWithSystemData(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionListResultWithSystemData(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionListResultWithSystemData(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemDataTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)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 PrivateEndpointConnectionListResultWithSystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemDataTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of private endpoint connection associated with the specified storage account + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultWithSystemDataTypeConverter))] + public partial interface IPrivateEndpointConnectionListResultWithSystemData + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.TypeConverter.cs new file mode 100644 index 000000000000..209172e6ddd6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.TypeConverter.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionListResultWithSystemDataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionListResultWithSystemData.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResultWithSystemData.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResultWithSystemData.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.cs new file mode 100644 index 000000000000..3496b442e91f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// List of private endpoint connection associated with the specified storage account + /// + public partial class PrivateEndpointConnectionListResultWithSystemData : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemDataInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[] _value; + + /// Array of private endpoint connections + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[] Value { get => this._value; set => this._value = value; } + + /// + /// Creates an new instance. + /// + public PrivateEndpointConnectionListResultWithSystemData() + { + + } + } + /// List of private endpoint connection associated with the specified storage account + public partial interface IPrivateEndpointConnectionListResultWithSystemData : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Array of private endpoint connections + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of private endpoint connections", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[] Value { get; set; } + + } + /// List of private endpoint connection associated with the specified storage account + internal partial interface IPrivateEndpointConnectionListResultWithSystemDataInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// Array of private endpoint connections + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.json.cs new file mode 100644 index 000000000000..634c13b50d52 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionListResultWithSystemData.json.cs @@ -0,0 +1,119 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// List of private endpoint connection associated with the specified storage account + /// + public partial class PrivateEndpointConnectionListResultWithSystemData + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionListResultWithSystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionListResultWithSystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionListResultWithSystemData(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateEndpointConnectionWithSystemData.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.PowerShell.cs new file mode 100644 index 000000000000..57682e7ba692 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.PowerShell.cs @@ -0,0 +1,168 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The Private Endpoint Connection resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionWithSystemDataTypeConverter))] + public partial class PrivateEndpointConnectionWithSystemData + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionWithSystemData(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionWithSystemData(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionWithSystemData(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)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 PrivateEndpointConnectionWithSystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateLinkServiceConnectionStateTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The Private Endpoint Connection resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionWithSystemDataTypeConverter))] + public partial interface IPrivateEndpointConnectionWithSystemData + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.TypeConverter.cs new file mode 100644 index 000000000000..346694694812 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionWithSystemDataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionWithSystemData.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionWithSystemData.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionWithSystemData.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.cs new file mode 100644 index 000000000000..6d2fcc6c5d2e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.cs @@ -0,0 +1,210 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint Connection resource. + public partial class PrivateEndpointConnectionWithSystemData : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection __privateEndpointConnection = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnection(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Id; } + + /// Internal Acessors for PrivateEndpointId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal.PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateEndpointId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateEndpointId = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Type = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemDataInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Name; } + + /// The resource of private end point. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpoint PrivateEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateEndpoint = value ?? null /* model class */; } + + /// The ARM identifier for Private Endpoint + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateEndpointId; } + + /// + /// A collection of information about the state of the connection between service consumer and provider. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateLinkServiceConnectionState PrivateLinkServiceConnectionState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionState = value ?? null /* model class */; } + + /// + /// A message indicating if changes on the service provider require any updates on the consumer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateActionsRequired = value ?? null; } + + /// The reason for approval/rejection of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateDescription = value ?? null; } + + /// + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus? PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).PrivateLinkServiceConnectionStateStatus = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus)""); } + + /// Resource properties. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionProperties Property { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).Property; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).Property = value ?? null /* model class */; } + + /// The provisioning state of the private endpoint connection resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal)__privateEndpointConnection).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__privateEndpointConnection).Type; } + + /// Creates an new instance. + public PrivateEndpointConnectionWithSystemData() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__privateEndpointConnection), __privateEndpointConnection); + await eventListener.AssertObjectIsValid(nameof(__privateEndpointConnection), __privateEndpointConnection); + } + } + /// The Private Endpoint Connection resource. + public partial interface IPrivateEndpointConnectionWithSystemData : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnection + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// The Private Endpoint Connection resource. + internal partial interface IPrivateEndpointConnectionWithSystemDataInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPrivateEndpointConnectionInternal + { + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.json.cs new file mode 100644 index 000000000000..ea974be5fdd6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateEndpointConnectionWithSystemData.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The Private Endpoint Connection resource. + public partial class PrivateEndpointConnectionWithSystemData + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionWithSystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionWithSystemData(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __privateEndpointConnection = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PrivateEndpointConnection(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __privateEndpointConnection?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.PowerShell.cs new file mode 100644 index 000000000000..a30f2b0c6baa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// A private link resource + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceTypeConverter))] + public partial class PrivateLinkResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A private link resource + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceTypeConverter))] + public partial interface IPrivateLinkResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.TypeConverter.cs new file mode 100644 index 000000000000..6cf570bf492a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.cs new file mode 100644 index 000000000000..ecfde8387c03 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// A private link resource + public partial class PrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).GroupId; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal.GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).GroupId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for RequiredMember + string[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceInternal.RequiredMember { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties _property; + + /// Resource properties. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceProperties()); set => this._property = value; } + + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] RequiredMember { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember; } + + /// The private link resource Private link DNS zone name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] RequiredZoneName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName = value ?? null /* arrayOf */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PrivateLinkResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// A private link resource + public partial interface IPrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource group id.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required member names.", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; } + /// The private link resource Private link DNS zone name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link resource Private link DNS zone name.", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; set; } + + } + /// A private link resource + internal partial interface IPrivateLinkResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// The private link resource group id. + string GroupId { get; set; } + /// Resource properties. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties Property { get; set; } + /// The private link resource required member names. + string[] RequiredMember { get; set; } + /// The private link resource Private link DNS zone name. + string[] RequiredZoneName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.json.cs new file mode 100644 index 000000000000..cb2e4fe5425f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// A private link resource + public partial class PrivateLinkResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateLinkResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResource(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.PowerShell.cs new file mode 100644 index 000000000000..21dbea622960 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// A list of private link resources + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceListResultTypeConverter))] + public partial class PrivateLinkResourceListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResourceListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResourceListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourceListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)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 PrivateLinkResourceListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A list of private link resources + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceListResultTypeConverter))] + public partial interface IPrivateLinkResourceListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.TypeConverter.cs new file mode 100644 index 000000000000..a8ba8ddbeb17 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourceListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResourceListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResourceListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResourceListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.cs new file mode 100644 index 000000000000..48fb14c3a500 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// A list of private link resources + public partial class PrivateLinkResourceListResult : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResultInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[] _value; + + /// Array of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PrivateLinkResourceListResult() + { + + } + } + /// A list of private link resources + public partial interface IPrivateLinkResourceListResult : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Array of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of private link resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[] Value { get; set; } + + } + /// A list of private link resources + internal partial interface IPrivateLinkResourceListResultInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// Array of private link resources + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.json.cs new file mode 100644 index 000000000000..7cc5c9162d5b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceListResult.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// A list of private link resources + public partial class PrivateLinkResourceListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateLinkResourceListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourceListResult(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.PrivateLinkResource.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..4b8f56633b2c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Properties of a private link resource. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcePropertiesTypeConverter))] + public partial class PrivateLinkResourceProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResourceProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResourceProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of a private link resource. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcePropertiesTypeConverter))] + public partial interface IPrivateLinkResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..5209f0783cfc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourcePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResourceProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.cs new file mode 100644 index 000000000000..2c0b2e5db84f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.cs @@ -0,0 +1,86 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of a private link resource. + public partial class PrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal + { + + /// Backing field for property. + private string _groupId; + + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string GroupId { get => this._groupId; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal.GroupId { get => this._groupId; set { {_groupId = value;} } } + + /// Internal Acessors for RequiredMember + string[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourcePropertiesInternal.RequiredMember { get => this._requiredMember; set { {_requiredMember = value;} } } + + /// Backing field for property. + private string[] _requiredMember; + + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] RequiredMember { get => this._requiredMember; } + + /// Backing field for property. + private string[] _requiredZoneName; + + /// The private link resource Private link DNS zone name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] RequiredZoneName { get => this._requiredZoneName; set => this._requiredZoneName = value; } + + /// Creates an new instance. + public PrivateLinkResourceProperties() + { + + } + } + /// Properties of a private link resource. + public partial interface IPrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource group id.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required member names.", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; } + /// The private link resource Private link DNS zone name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link resource Private link DNS zone name.", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; set; } + + } + /// Properties of a private link resource. + internal partial interface IPrivateLinkResourcePropertiesInternal + + { + /// The private link resource group id. + string GroupId { get; set; } + /// The private link resource required member names. + string[] RequiredMember { get; set; } + /// The private link resource Private link DNS zone name. + string[] RequiredZoneName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.json.cs new file mode 100644 index 000000000000..630bd756c59d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/PrivateLinkResourceProperties.json.cs @@ -0,0 +1,127 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Properties of a private link resource. + public partial class PrivateLinkResourceProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new PrivateLinkResourceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_groupId = If( json?.PropertyT("groupId"), out var __jsonGroupId) ? (string)__jsonGroupId : (string)GroupId;} + {_requiredMember = If( json?.PropertyT("requiredMembers"), out var __jsonRequiredMembers) ? If( __jsonRequiredMembers as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : RequiredMember;} + {_requiredZoneName = If( json?.PropertyT("requiredZoneNames"), out var __jsonRequiredZoneNames) ? If( __jsonRequiredZoneNames as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : RequiredZoneName;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._groupId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._groupId.ToString()) : null, "groupId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._requiredMember) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._requiredMember ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("requiredMembers",__w); + } + } + if (null != this._requiredZoneName) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._requiredZoneName ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("requiredZoneNames",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.PowerShell.cs new file mode 100644 index 000000000000..a7a25cf19058 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a RegistrationInfo definition. + [System.ComponentModel.TypeConverter(typeof(RegistrationInfoTypeConverter))] + public partial class RegistrationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RegistrationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RegistrationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RegistrationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).ExpirationTime = (global::System.DateTime?) content.GetValueForProperty("ExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).ExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).Token, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).RegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).RegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RegistrationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).ExpirationTime = (global::System.DateTime?) content.GetValueForProperty("ExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).ExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).Token = (string) content.GetValueForProperty("Token",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).Token, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).RegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal)this).RegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a RegistrationInfo definition. + [System.ComponentModel.TypeConverter(typeof(RegistrationInfoTypeConverter))] + public partial interface IRegistrationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.TypeConverter.cs new file mode 100644 index 000000000000..22e60f607fa0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RegistrationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RegistrationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RegistrationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RegistrationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.cs new file mode 100644 index 000000000000..d9dce2e83dcd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a RegistrationInfo definition. + public partial class RegistrationInfo : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoInternal + { + + /// Backing field for property. + private global::System.DateTime? _expirationTime; + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTime { get => this._expirationTime; set => this._expirationTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? _registrationTokenOperation; + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get => this._registrationTokenOperation; set => this._registrationTokenOperation = value; } + + /// Backing field for property. + private string _token; + + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Token { get => this._token; set => this._token = value; } + + /// Creates an new instance. + public RegistrationInfo() + { + + } + } + /// Represents a RegistrationInfo definition. + public partial interface IRegistrationInfo : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The registration token base64 encoded string.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + string Token { get; set; } + + } + /// Represents a RegistrationInfo definition. + internal partial interface IRegistrationInfoInternal + + { + /// Expiration time of registration token. + global::System.DateTime? ExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get; set; } + /// The registration token base64 encoded string. + string Token { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.json.cs new file mode 100644 index 000000000000..612b0461d852 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfo.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a RegistrationInfo definition. + public partial class RegistrationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new RegistrationInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal RegistrationInfo(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_expirationTime = If( json?.PropertyT("expirationTime"), out var __jsonExpirationTime) ? global::System.DateTime.TryParse((string)__jsonExpirationTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeValue) ? __jsonExpirationTimeValue : ExpirationTime : ExpirationTime;} + {_token = If( json?.PropertyT("token"), out var __jsonToken) ? (string)__jsonToken : (string)Token;} + {_registrationTokenOperation = If( json?.PropertyT("registrationTokenOperation"), out var __jsonRegistrationTokenOperation) ? (string)__jsonRegistrationTokenOperation : (string)RegistrationTokenOperation;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._expirationTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._expirationTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTime" ,container.Add ); + AddIf( null != (((object)this._token)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._token.ToString()) : null, "token" ,container.Add ); + AddIf( null != (((object)this._registrationTokenOperation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._registrationTokenOperation.ToString()) : null, "registrationTokenOperation" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.PowerShell.cs new file mode 100644 index 000000000000..9d6ae8bc754b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a RegistrationInfo definition. + [System.ComponentModel.TypeConverter(typeof(RegistrationInfoPatchTypeConverter))] + public partial class RegistrationInfoPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RegistrationInfoPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RegistrationInfoPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RegistrationInfoPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).ExpirationTime = (global::System.DateTime?) content.GetValueForProperty("ExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).ExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).RegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).RegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RegistrationInfoPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).ExpirationTime = (global::System.DateTime?) content.GetValueForProperty("ExpirationTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).ExpirationTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).RegistrationTokenOperation = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation?) content.GetValueForProperty("RegistrationTokenOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal)this).RegistrationTokenOperation, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a RegistrationInfo definition. + [System.ComponentModel.TypeConverter(typeof(RegistrationInfoPatchTypeConverter))] + public partial interface IRegistrationInfoPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.TypeConverter.cs new file mode 100644 index 000000000000..c3ece21acda0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RegistrationInfoPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RegistrationInfoPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RegistrationInfoPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RegistrationInfoPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.cs new file mode 100644 index 000000000000..a79a553a66a2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a RegistrationInfo definition. + public partial class RegistrationInfoPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatchInternal + { + + /// Backing field for property. + private global::System.DateTime? _expirationTime; + + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTime { get => this._expirationTime; set => this._expirationTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? _registrationTokenOperation; + + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get => this._registrationTokenOperation; set => this._registrationTokenOperation = value; } + + /// Creates an new instance. + public RegistrationInfoPatch() + { + + } + } + /// Represents a RegistrationInfo definition. + public partial interface IRegistrationInfoPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Expiration time of registration token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTime { get; set; } + /// The type of resetting the token. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get; set; } + + } + /// Represents a RegistrationInfo definition. + internal partial interface IRegistrationInfoPatchInternal + + { + /// Expiration time of registration token. + global::System.DateTime? ExpirationTime { get; set; } + /// The type of resetting the token. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation? RegistrationTokenOperation { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.json.cs new file mode 100644 index 000000000000..0eb5372549f2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/RegistrationInfoPatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a RegistrationInfo definition. + public partial class RegistrationInfoPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfoPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new RegistrationInfoPatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal RegistrationInfoPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_expirationTime = If( json?.PropertyT("expirationTime"), out var __jsonExpirationTime) ? global::System.DateTime.TryParse((string)__jsonExpirationTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeValue) ? __jsonExpirationTimeValue : ExpirationTime : ExpirationTime;} + {_registrationTokenOperation = If( json?.PropertyT("registrationTokenOperation"), out var __jsonRegistrationTokenOperation) ? (string)__jsonRegistrationTokenOperation : (string)RegistrationTokenOperation;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._expirationTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._expirationTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTime" ,container.Add ); + AddIf( null != (((object)this._registrationTokenOperation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._registrationTokenOperation.ToString()) : null, "registrationTokenOperation" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.PowerShell.cs new file mode 100644 index 000000000000..8ac0d300fbc8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Supported operation of this resource provider. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationTypeConverter))] + public partial class ResourceProviderOperation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceProviderOperation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceProviderOperation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceProviderOperation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplayTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.OperationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayResource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceProviderOperation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplayTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.OperationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayResource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported operation of this resource provider. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationTypeConverter))] + public partial interface IResourceProviderOperation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.TypeConverter.cs new file mode 100644 index 000000000000..ef93b71c75ab --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceProviderOperationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceProviderOperation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceProviderOperation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceProviderOperation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.cs new file mode 100644 index 000000000000..549f54f1ced2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.cs @@ -0,0 +1,162 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Supported operation of this resource provider. + public partial class ResourceProviderOperation : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay _display; + + /// Display metadata associated with the operation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplay()); set => this._display = value; } + + /// Description of this operation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Description = value ?? null; } + + /// Type of operation: get, read, delete, etc. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Operation = value ?? null; } + + /// Resource provider: Microsoft Desktop Virtualization. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Provider = value ?? null; } + + /// Resource on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DisplayResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)Display).Resource = value ?? null; } + + /// Backing field for property. + private bool? _isDataAction; + + /// Is a data action. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? IsDataAction { get => this._isDataAction; set => this._isDataAction = value; } + + /// Internal Acessors for Display + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplay()); set { {_display = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.OperationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationInternal.ServiceSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)Property).ServiceSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)Property).ServiceSpecification = value; } + + /// Backing field for property. + private string _name; + + /// Operation name, in format of {provider}/{resource}/{operation} + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties _property; + + /// Properties of the operation + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.OperationProperties()); set => this._property = value; } + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)Property).ServiceSpecificationLogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationPropertiesInternal)Property).ServiceSpecificationLogSpecification = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public ResourceProviderOperation() + { + + } + } + /// Supported operation of this resource provider. + public partial interface IResourceProviderOperation : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of this operation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of this operation.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string DisplayDescription { get; set; } + /// Type of operation: get, read, delete, etc. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of operation: get, read, delete, etc.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string DisplayOperation { get; set; } + /// Resource provider: Microsoft Desktop Virtualization. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource provider: Microsoft Desktop Virtualization.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string DisplayProvider { get; set; } + /// Resource on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource on which the operation is performed.", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string DisplayResource { get; set; } + /// Is a data action. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is a data action.", + SerializedName = @"isDataAction", + PossibleTypes = new [] { typeof(bool) })] + bool? IsDataAction { get; set; } + /// Operation name, in format of {provider}/{resource}/{operation} + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Operation name, in format of {provider}/{resource}/{operation}", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + + } + /// Supported operation of this resource provider. + internal partial interface IResourceProviderOperationInternal + + { + /// Display metadata associated with the operation. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay Display { get; set; } + /// Description of this operation. + string DisplayDescription { get; set; } + /// Type of operation: get, read, delete, etc. + string DisplayOperation { get; set; } + /// Resource provider: Microsoft Desktop Virtualization. + string DisplayProvider { get; set; } + /// Resource on which the operation is performed. + string DisplayResource { get; set; } + /// Is a data action. + bool? IsDataAction { get; set; } + /// Operation name, in format of {provider}/{resource}/{operation} + string Name { get; set; } + /// Properties of the operation + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IOperationProperties Property { get; set; } + /// Service specification payload + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.json.cs new file mode 100644 index 000000000000..436cd62c07bb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperation.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Supported operation of this resource provider. + public partial class ResourceProviderOperation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceProviderOperation(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceProviderOperation(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationDisplay.FromJson(__jsonDisplay) : Display;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.OperationProperties.FromJson(__jsonProperties) : Property;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_isDataAction = If( json?.PropertyT("isDataAction"), out var __jsonIsDataAction) ? (bool?)__jsonIsDataAction : IsDataAction;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._display ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._display.ToJson(null,serializationMode) : null, "display" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != this._isDataAction ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._isDataAction) : null, "isDataAction" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.PowerShell.cs new file mode 100644 index 000000000000..c92915738694 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Display metadata associated with the operation. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationDisplayTypeConverter))] + public partial class ResourceProviderOperationDisplay + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceProviderOperationDisplay(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceProviderOperationDisplay(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceProviderOperationDisplay(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)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 ResourceProviderOperationDisplay(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Display metadata associated with the operation. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationDisplayTypeConverter))] + public partial interface IResourceProviderOperationDisplay + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.TypeConverter.cs new file mode 100644 index 000000000000..7c1c33317480 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceProviderOperationDisplayTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceProviderOperationDisplay.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceProviderOperationDisplay.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceProviderOperationDisplay.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.cs new file mode 100644 index 000000000000..ddb8ea127062 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Display metadata associated with the operation. + public partial class ResourceProviderOperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplayInternal + { + + /// Backing field for property. + private string _description; + + /// Description of this operation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _operation; + + /// Type of operation: get, read, delete, etc. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Operation { get => this._operation; set => this._operation = value; } + + /// Backing field for property. + private string _provider; + + /// Resource provider: Microsoft Desktop Virtualization. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Provider { get => this._provider; set => this._provider = value; } + + /// Backing field for property. + private string _resource; + + /// Resource on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Resource { get => this._resource; set => this._resource = value; } + + /// Creates an new instance. + public ResourceProviderOperationDisplay() + { + + } + } + /// Display metadata associated with the operation. + public partial interface IResourceProviderOperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of this operation. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of this operation.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Type of operation: get, read, delete, etc. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of operation: get, read, delete, etc.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string Operation { get; set; } + /// Resource provider: Microsoft Desktop Virtualization. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource provider: Microsoft Desktop Virtualization.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// Resource on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource on which the operation is performed.", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string Resource { get; set; } + + } + /// Display metadata associated with the operation. + internal partial interface IResourceProviderOperationDisplayInternal + + { + /// Description of this operation. + string Description { get; set; } + /// Type of operation: get, read, delete, etc. + string Operation { get; set; } + /// Resource provider: Microsoft Desktop Virtualization. + string Provider { get; set; } + /// Resource on which the operation is performed. + string Resource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.json.cs new file mode 100644 index 000000000000..83957990e02b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationDisplay.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Display metadata associated with the operation. + public partial class ResourceProviderOperationDisplay + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationDisplay FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceProviderOperationDisplay(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceProviderOperationDisplay(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._resource)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._resource.ToString()) : null, "resource" ,container.Add ); + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.PowerShell.cs new file mode 100644 index 000000000000..956825652a23 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Result of the request to list operations. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationListTypeConverter))] + public partial class ResourceProviderOperationList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceProviderOperationList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceProviderOperationList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceProviderOperationList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)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 ResourceProviderOperationList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the request to list operations. + [System.ComponentModel.TypeConverter(typeof(ResourceProviderOperationListTypeConverter))] + public partial interface IResourceProviderOperationList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.TypeConverter.cs new file mode 100644 index 000000000000..12532951c39f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceProviderOperationListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceProviderOperationList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceProviderOperationList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceProviderOperationList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.cs new file mode 100644 index 000000000000..c8f4e6dd5be4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Result of the request to list operations. + public partial class ResourceProviderOperationList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[] _value; + + /// List of operations supported by this resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ResourceProviderOperationList() + { + + } + } + /// Result of the request to list operations. + public partial interface IResourceProviderOperationList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of operations supported by this resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of operations supported by this resource provider.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[] Value { get; set; } + + } + /// Result of the request to list operations. + internal partial interface IResourceProviderOperationListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of operations supported by this resource provider. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.json.cs new file mode 100644 index 000000000000..3f4cd4d0ee88 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ResourceProviderOperationList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Result of the request to list operations. + public partial class ResourceProviderOperationList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperationList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ResourceProviderOperationList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceProviderOperationList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ResourceProviderOperation.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.PowerShell.cs new file mode 100644 index 000000000000..858a13b36809 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Scaling plan reference to hostpool. + [System.ComponentModel.TypeConverter(typeof(ScalingHostPoolReferenceTypeConverter))] + public partial class ScalingHostPoolReference + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingHostPoolReference(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingHostPoolReference(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingHostPoolReference(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).ScalingPlanEnabled = (bool?) content.GetValueForProperty("ScalingPlanEnabled",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).ScalingPlanEnabled, (__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 ScalingHostPoolReference(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).HostPoolArmPath = (string) content.GetValueForProperty("HostPoolArmPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).HostPoolArmPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).ScalingPlanEnabled = (bool?) content.GetValueForProperty("ScalingPlanEnabled",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal)this).ScalingPlanEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Scaling plan reference to hostpool. + [System.ComponentModel.TypeConverter(typeof(ScalingHostPoolReferenceTypeConverter))] + public partial interface IScalingHostPoolReference + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.TypeConverter.cs new file mode 100644 index 000000000000..537c65b4c099 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingHostPoolReferenceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingHostPoolReference.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingHostPoolReference.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingHostPoolReference.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.cs new file mode 100644 index 000000000000..da919044f14d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan reference to hostpool. + public partial class ScalingHostPoolReference : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReferenceInternal + { + + /// Backing field for property. + private string _hostPoolArmPath; + + /// Arm path of referenced hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string HostPoolArmPath { get => this._hostPoolArmPath; set => this._hostPoolArmPath = value; } + + /// Backing field for property. + private bool? _scalingPlanEnabled; + + /// Is the scaling plan enabled for this hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? ScalingPlanEnabled { get => this._scalingPlanEnabled; set => this._scalingPlanEnabled = value; } + + /// Creates an new instance. + public ScalingHostPoolReference() + { + + } + } + /// Scaling plan reference to hostpool. + public partial interface IScalingHostPoolReference : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Arm path of referenced hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Arm path of referenced hostpool.", + SerializedName = @"hostPoolArmPath", + PossibleTypes = new [] { typeof(string) })] + string HostPoolArmPath { get; set; } + /// Is the scaling plan enabled for this hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is the scaling plan enabled for this hostpool.", + SerializedName = @"scalingPlanEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? ScalingPlanEnabled { get; set; } + + } + /// Scaling plan reference to hostpool. + internal partial interface IScalingHostPoolReferenceInternal + + { + /// Arm path of referenced hostpool. + string HostPoolArmPath { get; set; } + /// Is the scaling plan enabled for this hostpool. + bool? ScalingPlanEnabled { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.json.cs new file mode 100644 index 000000000000..1316fae9a4fa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingHostPoolReference.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan reference to hostpool. + public partial class ScalingHostPoolReference + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingHostPoolReference(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingHostPoolReference(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_hostPoolArmPath = If( json?.PropertyT("hostPoolArmPath"), out var __jsonHostPoolArmPath) ? (string)__jsonHostPoolArmPath : (string)HostPoolArmPath;} + {_scalingPlanEnabled = If( json?.PropertyT("scalingPlanEnabled"), out var __jsonScalingPlanEnabled) ? (bool?)__jsonScalingPlanEnabled : ScalingPlanEnabled;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._hostPoolArmPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolArmPath.ToString()) : null, "hostPoolArmPath" ,container.Add ); + AddIf( null != this._scalingPlanEnabled ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._scalingPlanEnabled) : null, "scalingPlanEnabled" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.PowerShell.cs new file mode 100644 index 000000000000..a7993ea4e1dc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.PowerShell.cs @@ -0,0 +1,211 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a scaling plan definition. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanTypeConverter))] + public partial class ScalingPlan + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlan(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlan(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlan(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScalingPlan(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a scaling plan definition. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanTypeConverter))] + public partial interface IScalingPlan + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.TypeConverter.cs new file mode 100644 index 000000000000..0a8e08d9d252 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlan.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlan.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlan.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.cs new file mode 100644 index 000000000000..c93283a46886 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.cs @@ -0,0 +1,416 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a scaling plan definition. + public partial class ScalingPlan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(); + + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).Description = value ?? null; } + + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; } + + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ExclusionTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).ExclusionTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).ExclusionTag = value ?? null; } + + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).HostPoolReference; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).HostPoolReference = value ?? null /* arrayOf */; } + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).HostPoolType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).HostPoolType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType)""); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; } + + /// Identity for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity = value ?? null /* model class */; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind = value ?? null; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location = value ?? null; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string ManagedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy = value ?? null; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id = value; } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; } + + /// ObjectId of scaling plan. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).ObjectId; } + + /// Plan for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan = value ?? null /* model class */; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName = value ?? null; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct = value ?? null; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher = value ?? null; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties _property; + + /// Detailed properties for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanProperties()); set => this._property = value; } + + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).Schedule; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).Schedule = value ?? null /* arrayOf */; } + + /// The resource model definition representing SKU + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku = value ?? null /* model class */; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuFamily { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName = value ?? null; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag = value ?? null /* model class */; } + + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string TimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).TimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)Property).TimeZone = value ?? null; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; } + + /// Creates an new instance. + public ScalingPlan() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + await eventListener.AssertObjectIsValid(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + } + } + /// Represents a scaling plan definition. + public partial interface IScalingPlan : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet + { + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// ObjectId of scaling plan. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of scaling plan. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string TimeZone { get; set; } + + } + /// Represents a scaling plan definition. + internal partial interface IScalingPlanInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal + { + /// Description of scaling plan. + string Description { get; set; } + /// Exclusion tag for scaling plan. + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// ObjectId of scaling plan. (internal use) + string ObjectId { get; set; } + /// Detailed properties for scaling plan. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties Property { get; set; } + /// List of ScalingSchedule definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Timezone of the scaling plan. + string TimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.json.cs new file mode 100644 index 000000000000..7b01c4e3c0f1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlan.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a scaling plan definition. + public partial class ScalingPlan + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlan(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingPlan(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resourceModelWithAllowedPropertySet?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.PowerShell.cs new file mode 100644 index 000000000000..70c3d2d27808 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of scaling plan definitions. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanListTypeConverter))] + public partial class ScalingPlanList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlanList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlanList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlanList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)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 ScalingPlanList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of scaling plan definitions. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanListTypeConverter))] + public partial interface IScalingPlanList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.TypeConverter.cs new file mode 100644 index 000000000000..7f75c0fcafd2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlanList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlanList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlanList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.cs new file mode 100644 index 000000000000..535537361776 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of scaling plan definitions. + public partial class ScalingPlanList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[] _value; + + /// List of scaling plan definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ScalingPlanList() + { + + } + } + /// List of scaling plan definitions. + public partial interface IScalingPlanList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of scaling plan definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of scaling plan definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[] Value { get; set; } + + } + /// List of scaling plan definitions. + internal partial interface IScalingPlanListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of scaling plan definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.json.cs new file mode 100644 index 000000000000..1678a77b461c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of scaling plan definitions. + public partial class ScalingPlanList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlanList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingPlanList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.PowerShell.cs new file mode 100644 index 000000000000..5fab5a707fc0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.PowerShell.cs @@ -0,0 +1,149 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Scaling plan properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchTypeConverter))] + public partial class ScalingPlanPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlanPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlanPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlanPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScalingPlanPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Scaling plan properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchTypeConverter))] + public partial interface IScalingPlanPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.TypeConverter.cs new file mode 100644 index 000000000000..f3dcd2ecdb85 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlanPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlanPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlanPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.cs new file mode 100644 index 000000000000..33ab30be34ed --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.cs @@ -0,0 +1,156 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties that can be patched. + public partial class ScalingPlanPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal + { + + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).Description = value ?? null; } + + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ExclusionTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).ExclusionTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).ExclusionTag = value ?? null; } + + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).HostPoolReference; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).HostPoolReference = value ?? null /* arrayOf */; } + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).HostPoolType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).HostPoolType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType)""); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties _property; + + /// Detailed properties for scaling plan + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchProperties()); set => this._property = value; } + + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).Schedule; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).Schedule = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTags()); set => this._tag = value; } + + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string TimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).TimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)Property).TimeZone = value ?? null; } + + /// Creates an new instance. + public ScalingPlanPatch() + { + + } + } + /// Scaling plan properties that can be patched. + public partial interface IScalingPlanPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags Tag { get; set; } + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string TimeZone { get; set; } + + } + /// Scaling plan properties that can be patched. + internal partial interface IScalingPlanPatchInternal + + { + /// Description of scaling plan. + string Description { get; set; } + /// Exclusion tag for scaling plan. + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// Detailed properties for scaling plan + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties Property { get; set; } + /// List of ScalingSchedule definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags Tag { get; set; } + /// Timezone of the scaling plan. + string TimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.json.cs new file mode 100644 index 000000000000..eca2352cfc18 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties that can be patched. + public partial class ScalingPlanPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlanPatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingPlanPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTags.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..00672a887d8e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Scaling plan properties. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchPropertiesTypeConverter))] + public partial class ScalingPlanPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlanPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlanPatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlanPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScalingPlanPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Scaling plan properties. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchPropertiesTypeConverter))] + public partial interface IScalingPlanPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..51172dddec71 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlanPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlanPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlanPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.cs new file mode 100644 index 000000000000..6af86457ee80 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.cs @@ -0,0 +1,148 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties. + public partial class ScalingPlanPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _exclusionTag; + + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ExclusionTag { get => this._exclusionTag; set => this._exclusionTag = value; } + + /// Backing field for property. + private string _friendlyName; + + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] _hostPoolReference; + + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => this._hostPoolReference; set => this._hostPoolReference = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? _hostPoolType; + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get => this._hostPoolType; set => this._hostPoolType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] _schedule; + + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => this._schedule; set => this._schedule = value; } + + /// Backing field for property. + private string _timeZone; + + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string TimeZone { get => this._timeZone; set => this._timeZone = value; } + + /// Creates an new instance. + public ScalingPlanPatchProperties() + { + + } + } + /// Scaling plan properties. + public partial interface IScalingPlanPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string TimeZone { get; set; } + + } + /// Scaling plan properties. + internal partial interface IScalingPlanPatchPropertiesInternal + + { + /// Description of scaling plan. + string Description { get; set; } + /// Exclusion tag for scaling plan. + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// List of ScalingSchedule definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// Timezone of the scaling plan. + string TimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.json.cs new file mode 100644 index 000000000000..98e7fc5c0f44 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchProperties.json.cs @@ -0,0 +1,129 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties. + public partial class ScalingPlanPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlanPatchProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingPlanPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_timeZone = If( json?.PropertyT("timeZone"), out var __jsonTimeZone) ? (string)__jsonTimeZone : (string)TimeZone;} + {_hostPoolType = If( json?.PropertyT("hostPoolType"), out var __jsonHostPoolType) ? (string)__jsonHostPoolType : (string)HostPoolType;} + {_exclusionTag = If( json?.PropertyT("exclusionTag"), out var __jsonExclusionTag) ? (string)__jsonExclusionTag : (string)ExclusionTag;} + {_schedule = If( json?.PropertyT("schedules"), out var __jsonSchedules) ? If( __jsonSchedules as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingSchedule.FromJson(__u) )) ))() : null : Schedule;} + {_hostPoolReference = If( json?.PropertyT("hostPoolReferences"), out var __jsonHostPoolReferences) ? If( __jsonHostPoolReferences as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReference.FromJson(__p) )) ))() : null : HostPoolReference;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._timeZone)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeZone.ToString()) : null, "timeZone" ,container.Add ); + AddIf( null != (((object)this._hostPoolType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolType.ToString()) : null, "hostPoolType" ,container.Add ); + AddIf( null != (((object)this._exclusionTag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._exclusionTag.ToString()) : null, "exclusionTag" ,container.Add ); + if (null != this._schedule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._schedule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("schedules",__w); + } + if (null != this._hostPoolReference) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._hostPoolReference ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("hostPoolReferences",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.PowerShell.cs new file mode 100644 index 000000000000..ade0b011be76 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchTagsTypeConverter))] + public partial class ScalingPlanPatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlanPatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlanPatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlanPatchTags(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 ScalingPlanPatchTags(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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPatchTagsTypeConverter))] + public partial interface IScalingPlanPatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.TypeConverter.cs new file mode 100644 index 000000000000..d8738653c6e3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanPatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlanPatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlanPatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlanPatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.cs new file mode 100644 index 000000000000..5f506ed80ecd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ScalingPlanPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTagsInternal + { + + /// Creates an new instance. + public ScalingPlanPatchTags() + { + + } + } + /// tags to be updated + public partial interface IScalingPlanPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IScalingPlanPatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.dictionary.cs new file mode 100644 index 000000000000..a72efcbc57c6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class ScalingPlanPatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.json.cs new file mode 100644 index 000000000000..fedd9bfc8804 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanPatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class ScalingPlanPatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlanPatchTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ScalingPlanPatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.PowerShell.cs new file mode 100644 index 000000000000..b509f7e159ea --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.PowerShell.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Scaling plan properties. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPropertiesTypeConverter))] + public partial class ScalingPlanProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingPlanProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingPlanProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingPlanProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScalingPlanProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).TimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType?) content.GetValueForProperty("HostPoolType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ExclusionTag = (string) content.GetValueForProperty("ExclusionTag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).ExclusionTag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Schedule = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[]) content.GetValueForProperty("Schedule",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).Schedule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingScheduleTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolReference = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[]) content.GetValueForProperty("HostPoolReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal)this).HostPoolReference, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReferenceTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Scaling plan properties. + [System.ComponentModel.TypeConverter(typeof(ScalingPlanPropertiesTypeConverter))] + public partial interface IScalingPlanProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.TypeConverter.cs new file mode 100644 index 000000000000..262c3fb43c9e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingPlanPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingPlanProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingPlanProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingPlanProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.cs new file mode 100644 index 000000000000..cf4c597a3618 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.cs @@ -0,0 +1,168 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties. + public partial class ScalingPlanProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _exclusionTag; + + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ExclusionTag { get => this._exclusionTag; set => this._exclusionTag = value; } + + /// Backing field for property. + private string _friendlyName; + + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] _hostPoolReference; + + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => this._hostPoolReference; set => this._hostPoolReference = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? _hostPoolType; + + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get => this._hostPoolType; set => this._hostPoolType = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of scaling plan. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] _schedule; + + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => this._schedule; set => this._schedule = value; } + + /// Backing field for property. + private string _timeZone; + + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string TimeZone { get => this._timeZone; set => this._timeZone = value; } + + /// Creates an new instance. + public ScalingPlanProperties() + { + + } + } + /// Scaling plan properties. + public partial interface IScalingPlanProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Description of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Exclusion tag for scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// ObjectId of scaling plan. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of scaling plan. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// List of ScalingSchedule definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// Timezone of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string TimeZone { get; set; } + + } + /// Scaling plan properties. + internal partial interface IScalingPlanPropertiesInternal + + { + /// Description of scaling plan. + string Description { get; set; } + /// Exclusion tag for scaling plan. + string ExclusionTag { get; set; } + /// User friendly name of scaling plan. + string FriendlyName { get; set; } + /// List of ScalingHostPoolReference definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get; set; } + /// HostPool type for desktop. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType? HostPoolType { get; set; } + /// ObjectId of scaling plan. (internal use) + string ObjectId { get; set; } + /// List of ScalingSchedule definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get; set; } + /// Timezone of the scaling plan. + string TimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.json.cs new file mode 100644 index 000000000000..49ebb11c4b95 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingPlanProperties.json.cs @@ -0,0 +1,134 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan properties. + public partial class ScalingPlanProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingPlanProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingPlanProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_timeZone = If( json?.PropertyT("timeZone"), out var __jsonTimeZone) ? (string)__jsonTimeZone : (string)TimeZone;} + {_hostPoolType = If( json?.PropertyT("hostPoolType"), out var __jsonHostPoolType) ? (string)__jsonHostPoolType : (string)HostPoolType;} + {_exclusionTag = If( json?.PropertyT("exclusionTag"), out var __jsonExclusionTag) ? (string)__jsonExclusionTag : (string)ExclusionTag;} + {_schedule = If( json?.PropertyT("schedules"), out var __jsonSchedules) ? If( __jsonSchedules as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingSchedule.FromJson(__u) )) ))() : null : Schedule;} + {_hostPoolReference = If( json?.PropertyT("hostPoolReferences"), out var __jsonHostPoolReferences) ? If( __jsonHostPoolReferences as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingHostPoolReference.FromJson(__p) )) ))() : null : HostPoolReference;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + AddIf( null != (((object)this._timeZone)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeZone.ToString()) : null, "timeZone" ,container.Add ); + AddIf( null != (((object)this._hostPoolType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolType.ToString()) : null, "hostPoolType" ,container.Add ); + AddIf( null != (((object)this._exclusionTag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._exclusionTag.ToString()) : null, "exclusionTag" ,container.Add ); + if (null != this._schedule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._schedule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("schedules",__w); + } + if (null != this._hostPoolReference) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __s in this._hostPoolReference ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("hostPoolReferences",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.PowerShell.cs new file mode 100644 index 000000000000..8162ae0d05cb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.PowerShell.cs @@ -0,0 +1,167 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Scaling plan schedule. + [System.ComponentModel.TypeConverter(typeof(ScalingScheduleTypeConverter))] + public partial class ScalingSchedule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScalingSchedule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScalingSchedule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScalingSchedule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).DaysOfWeek = (string[]) content.GetValueForProperty("DaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).DaysOfWeek, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpStartTime = (global::System.DateTime?) content.GetValueForProperty("RampUpStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("RampUpLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpMinimumHostsPct = (int?) content.GetValueForProperty("RampUpMinimumHostsPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpMinimumHostsPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpCapacityThresholdPct = (int?) content.GetValueForProperty("RampUpCapacityThresholdPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpCapacityThresholdPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakStartTime = (global::System.DateTime?) content.GetValueForProperty("PeakStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("PeakLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStartTime = (global::System.DateTime?) content.GetValueForProperty("RampDownStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("RampDownLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownMinimumHostsPct = (int?) content.GetValueForProperty("RampDownMinimumHostsPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownMinimumHostsPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownCapacityThresholdPct = (int?) content.GetValueForProperty("RampDownCapacityThresholdPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownCapacityThresholdPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownForceLogoffUser = (bool?) content.GetValueForProperty("RampDownForceLogoffUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownForceLogoffUser, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStopHostsWhen = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen?) content.GetValueForProperty("RampDownStopHostsWhen",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStopHostsWhen, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownWaitTimeMinute = (int?) content.GetValueForProperty("RampDownWaitTimeMinute",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownWaitTimeMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownNotificationMessage = (string) content.GetValueForProperty("RampDownNotificationMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownNotificationMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakStartTime = (global::System.DateTime?) content.GetValueForProperty("OffPeakStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("OffPeakLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScalingSchedule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).DaysOfWeek = (string[]) content.GetValueForProperty("DaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).DaysOfWeek, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpStartTime = (global::System.DateTime?) content.GetValueForProperty("RampUpStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("RampUpLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpMinimumHostsPct = (int?) content.GetValueForProperty("RampUpMinimumHostsPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpMinimumHostsPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpCapacityThresholdPct = (int?) content.GetValueForProperty("RampUpCapacityThresholdPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampUpCapacityThresholdPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakStartTime = (global::System.DateTime?) content.GetValueForProperty("PeakStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("PeakLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).PeakLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStartTime = (global::System.DateTime?) content.GetValueForProperty("RampDownStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("RampDownLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownMinimumHostsPct = (int?) content.GetValueForProperty("RampDownMinimumHostsPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownMinimumHostsPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownCapacityThresholdPct = (int?) content.GetValueForProperty("RampDownCapacityThresholdPct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownCapacityThresholdPct, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownForceLogoffUser = (bool?) content.GetValueForProperty("RampDownForceLogoffUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownForceLogoffUser, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStopHostsWhen = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen?) content.GetValueForProperty("RampDownStopHostsWhen",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownStopHostsWhen, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownWaitTimeMinute = (int?) content.GetValueForProperty("RampDownWaitTimeMinute",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownWaitTimeMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownNotificationMessage = (string) content.GetValueForProperty("RampDownNotificationMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).RampDownNotificationMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakStartTime = (global::System.DateTime?) content.GetValueForProperty("OffPeakStartTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakStartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakLoadBalancingAlgorithm = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm?) content.GetValueForProperty("OffPeakLoadBalancingAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal)this).OffPeakLoadBalancingAlgorithm, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Scaling plan schedule. + [System.ComponentModel.TypeConverter(typeof(ScalingScheduleTypeConverter))] + public partial interface IScalingSchedule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.TypeConverter.cs new file mode 100644 index 000000000000..43d0201520ae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScalingScheduleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScalingSchedule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScalingSchedule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScalingSchedule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.cs new file mode 100644 index 000000000000..8d7eba666a52 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.cs @@ -0,0 +1,335 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan schedule. + public partial class ScalingSchedule : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingScheduleInternal + { + + /// Backing field for property. + private string[] _daysOfWeek; + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] DaysOfWeek { get => this._daysOfWeek; set => this._daysOfWeek = value; } + + /// Backing field for property. + private string _name; + + /// Name of the scaling schedule. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? _offPeakLoadBalancingAlgorithm; + + /// Load balancing algorithm for off-peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? OffPeakLoadBalancingAlgorithm { get => this._offPeakLoadBalancingAlgorithm; set => this._offPeakLoadBalancingAlgorithm = value; } + + /// Backing field for property. + private global::System.DateTime? _offPeakStartTime; + + /// Starting time for off-peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? OffPeakStartTime { get => this._offPeakStartTime; set => this._offPeakStartTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? _peakLoadBalancingAlgorithm; + + /// Load balancing algorithm for peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? PeakLoadBalancingAlgorithm { get => this._peakLoadBalancingAlgorithm; set => this._peakLoadBalancingAlgorithm = value; } + + /// Backing field for property. + private global::System.DateTime? _peakStartTime; + + /// Starting time for peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? PeakStartTime { get => this._peakStartTime; set => this._peakStartTime = value; } + + /// Backing field for property. + private int? _rampDownCapacityThresholdPct; + + /// Capacity threshold for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? RampDownCapacityThresholdPct { get => this._rampDownCapacityThresholdPct; set => this._rampDownCapacityThresholdPct = value; } + + /// Backing field for property. + private bool? _rampDownForceLogoffUser; + + /// Should users be logged off forcefully from hosts. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? RampDownForceLogoffUser { get => this._rampDownForceLogoffUser; set => this._rampDownForceLogoffUser = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? _rampDownLoadBalancingAlgorithm; + + /// Load balancing algorithm for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampDownLoadBalancingAlgorithm { get => this._rampDownLoadBalancingAlgorithm; set => this._rampDownLoadBalancingAlgorithm = value; } + + /// Backing field for property. + private int? _rampDownMinimumHostsPct; + + /// Minimum host percentage for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? RampDownMinimumHostsPct { get => this._rampDownMinimumHostsPct; set => this._rampDownMinimumHostsPct = value; } + + /// Backing field for property. + private string _rampDownNotificationMessage; + + /// Notification message for users during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string RampDownNotificationMessage { get => this._rampDownNotificationMessage; set => this._rampDownNotificationMessage = value; } + + /// Backing field for property. + private global::System.DateTime? _rampDownStartTime; + + /// Starting time for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? RampDownStartTime { get => this._rampDownStartTime; set => this._rampDownStartTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen? _rampDownStopHostsWhen; + + /// Specifies when to stop hosts during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen? RampDownStopHostsWhen { get => this._rampDownStopHostsWhen; set => this._rampDownStopHostsWhen = value; } + + /// Backing field for property. + private int? _rampDownWaitTimeMinute; + + /// Number of minutes to wait to stop hosts during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? RampDownWaitTimeMinute { get => this._rampDownWaitTimeMinute; set => this._rampDownWaitTimeMinute = value; } + + /// Backing field for property. + private int? _rampUpCapacityThresholdPct; + + /// Capacity threshold for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? RampUpCapacityThresholdPct { get => this._rampUpCapacityThresholdPct; set => this._rampUpCapacityThresholdPct = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? _rampUpLoadBalancingAlgorithm; + + /// Load balancing algorithm for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampUpLoadBalancingAlgorithm { get => this._rampUpLoadBalancingAlgorithm; set => this._rampUpLoadBalancingAlgorithm = value; } + + /// Backing field for property. + private int? _rampUpMinimumHostsPct; + + /// Minimum host percentage for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? RampUpMinimumHostsPct { get => this._rampUpMinimumHostsPct; set => this._rampUpMinimumHostsPct = value; } + + /// Backing field for property. + private global::System.DateTime? _rampUpStartTime; + + /// Starting time for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? RampUpStartTime { get => this._rampUpStartTime; set => this._rampUpStartTime = value; } + + /// Creates an new instance. + public ScalingSchedule() + { + + } + } + /// Scaling plan schedule. + public partial interface IScalingSchedule : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] DaysOfWeek { get; set; } + /// Name of the scaling schedule. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the scaling schedule.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Load balancing algorithm for off-peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Load balancing algorithm for off-peak period.", + SerializedName = @"offPeakLoadBalancingAlgorithm", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? OffPeakLoadBalancingAlgorithm { get; set; } + /// Starting time for off-peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Starting time for off-peak period.", + SerializedName = @"offPeakStartTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? OffPeakStartTime { get; set; } + /// Load balancing algorithm for peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Load balancing algorithm for peak period.", + SerializedName = @"peakLoadBalancingAlgorithm", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? PeakLoadBalancingAlgorithm { get; set; } + /// Starting time for peak period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Starting time for peak period.", + SerializedName = @"peakStartTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? PeakStartTime { get; set; } + /// Capacity threshold for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Capacity threshold for ramp down period.", + SerializedName = @"rampDownCapacityThresholdPct", + PossibleTypes = new [] { typeof(int) })] + int? RampDownCapacityThresholdPct { get; set; } + /// Should users be logged off forcefully from hosts. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Should users be logged off forcefully from hosts.", + SerializedName = @"rampDownForceLogoffUsers", + PossibleTypes = new [] { typeof(bool) })] + bool? RampDownForceLogoffUser { get; set; } + /// Load balancing algorithm for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Load balancing algorithm for ramp down period.", + SerializedName = @"rampDownLoadBalancingAlgorithm", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampDownLoadBalancingAlgorithm { get; set; } + /// Minimum host percentage for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum host percentage for ramp down period.", + SerializedName = @"rampDownMinimumHostsPct", + PossibleTypes = new [] { typeof(int) })] + int? RampDownMinimumHostsPct { get; set; } + /// Notification message for users during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Notification message for users during ramp down period.", + SerializedName = @"rampDownNotificationMessage", + PossibleTypes = new [] { typeof(string) })] + string RampDownNotificationMessage { get; set; } + /// Starting time for ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Starting time for ramp down period.", + SerializedName = @"rampDownStartTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RampDownStartTime { get; set; } + /// Specifies when to stop hosts during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies when to stop hosts during ramp down period.", + SerializedName = @"rampDownStopHostsWhen", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen? RampDownStopHostsWhen { get; set; } + /// Number of minutes to wait to stop hosts during ramp down period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of minutes to wait to stop hosts during ramp down period.", + SerializedName = @"rampDownWaitTimeMinutes", + PossibleTypes = new [] { typeof(int) })] + int? RampDownWaitTimeMinute { get; set; } + /// Capacity threshold for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Capacity threshold for ramp up period.", + SerializedName = @"rampUpCapacityThresholdPct", + PossibleTypes = new [] { typeof(int) })] + int? RampUpCapacityThresholdPct { get; set; } + /// Load balancing algorithm for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Load balancing algorithm for ramp up period.", + SerializedName = @"rampUpLoadBalancingAlgorithm", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampUpLoadBalancingAlgorithm { get; set; } + /// Minimum host percentage for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum host percentage for ramp up period.", + SerializedName = @"rampUpMinimumHostsPct", + PossibleTypes = new [] { typeof(int) })] + int? RampUpMinimumHostsPct { get; set; } + /// Starting time for ramp up period. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Starting time for ramp up period.", + SerializedName = @"rampUpStartTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? RampUpStartTime { get; set; } + + } + /// Scaling plan schedule. + internal partial interface IScalingScheduleInternal + + { + /// Set of days of the week on which this schedule is active. + string[] DaysOfWeek { get; set; } + /// Name of the scaling schedule. + string Name { get; set; } + /// Load balancing algorithm for off-peak period. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? OffPeakLoadBalancingAlgorithm { get; set; } + /// Starting time for off-peak period. + global::System.DateTime? OffPeakStartTime { get; set; } + /// Load balancing algorithm for peak period. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? PeakLoadBalancingAlgorithm { get; set; } + /// Starting time for peak period. + global::System.DateTime? PeakStartTime { get; set; } + /// Capacity threshold for ramp down period. + int? RampDownCapacityThresholdPct { get; set; } + /// Should users be logged off forcefully from hosts. + bool? RampDownForceLogoffUser { get; set; } + /// Load balancing algorithm for ramp down period. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampDownLoadBalancingAlgorithm { get; set; } + /// Minimum host percentage for ramp down period. + int? RampDownMinimumHostsPct { get; set; } + /// Notification message for users during ramp down period. + string RampDownNotificationMessage { get; set; } + /// Starting time for ramp down period. + global::System.DateTime? RampDownStartTime { get; set; } + /// Specifies when to stop hosts during ramp down period. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen? RampDownStopHostsWhen { get; set; } + /// Number of minutes to wait to stop hosts during ramp down period. + int? RampDownWaitTimeMinute { get; set; } + /// Capacity threshold for ramp up period. + int? RampUpCapacityThresholdPct { get; set; } + /// Load balancing algorithm for ramp up period. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm? RampUpLoadBalancingAlgorithm { get; set; } + /// Minimum host percentage for ramp up period. + int? RampUpMinimumHostsPct { get; set; } + /// Starting time for ramp up period. + global::System.DateTime? RampUpStartTime { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.json.cs new file mode 100644 index 000000000000..af1b28e4b65b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScalingSchedule.json.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Scaling plan schedule. + public partial class ScalingSchedule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScalingSchedule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScalingSchedule(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_daysOfWeek = If( json?.PropertyT("daysOfWeek"), out var __jsonDaysOfWeek) ? If( __jsonDaysOfWeek as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : DaysOfWeek;} + {_rampUpStartTime = If( json?.PropertyT("rampUpStartTime"), out var __jsonRampUpStartTime) ? global::System.DateTime.TryParse((string)__jsonRampUpStartTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonRampUpStartTimeValue) ? __jsonRampUpStartTimeValue : RampUpStartTime : RampUpStartTime;} + {_rampUpLoadBalancingAlgorithm = If( json?.PropertyT("rampUpLoadBalancingAlgorithm"), out var __jsonRampUpLoadBalancingAlgorithm) ? (string)__jsonRampUpLoadBalancingAlgorithm : (string)RampUpLoadBalancingAlgorithm;} + {_rampUpMinimumHostsPct = If( json?.PropertyT("rampUpMinimumHostsPct"), out var __jsonRampUpMinimumHostsPct) ? (int?)__jsonRampUpMinimumHostsPct : RampUpMinimumHostsPct;} + {_rampUpCapacityThresholdPct = If( json?.PropertyT("rampUpCapacityThresholdPct"), out var __jsonRampUpCapacityThresholdPct) ? (int?)__jsonRampUpCapacityThresholdPct : RampUpCapacityThresholdPct;} + {_peakStartTime = If( json?.PropertyT("peakStartTime"), out var __jsonPeakStartTime) ? global::System.DateTime.TryParse((string)__jsonPeakStartTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonPeakStartTimeValue) ? __jsonPeakStartTimeValue : PeakStartTime : PeakStartTime;} + {_peakLoadBalancingAlgorithm = If( json?.PropertyT("peakLoadBalancingAlgorithm"), out var __jsonPeakLoadBalancingAlgorithm) ? (string)__jsonPeakLoadBalancingAlgorithm : (string)PeakLoadBalancingAlgorithm;} + {_rampDownStartTime = If( json?.PropertyT("rampDownStartTime"), out var __jsonRampDownStartTime) ? global::System.DateTime.TryParse((string)__jsonRampDownStartTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonRampDownStartTimeValue) ? __jsonRampDownStartTimeValue : RampDownStartTime : RampDownStartTime;} + {_rampDownLoadBalancingAlgorithm = If( json?.PropertyT("rampDownLoadBalancingAlgorithm"), out var __jsonRampDownLoadBalancingAlgorithm) ? (string)__jsonRampDownLoadBalancingAlgorithm : (string)RampDownLoadBalancingAlgorithm;} + {_rampDownMinimumHostsPct = If( json?.PropertyT("rampDownMinimumHostsPct"), out var __jsonRampDownMinimumHostsPct) ? (int?)__jsonRampDownMinimumHostsPct : RampDownMinimumHostsPct;} + {_rampDownCapacityThresholdPct = If( json?.PropertyT("rampDownCapacityThresholdPct"), out var __jsonRampDownCapacityThresholdPct) ? (int?)__jsonRampDownCapacityThresholdPct : RampDownCapacityThresholdPct;} + {_rampDownForceLogoffUser = If( json?.PropertyT("rampDownForceLogoffUsers"), out var __jsonRampDownForceLogoffUsers) ? (bool?)__jsonRampDownForceLogoffUsers : RampDownForceLogoffUser;} + {_rampDownStopHostsWhen = If( json?.PropertyT("rampDownStopHostsWhen"), out var __jsonRampDownStopHostsWhen) ? (string)__jsonRampDownStopHostsWhen : (string)RampDownStopHostsWhen;} + {_rampDownWaitTimeMinute = If( json?.PropertyT("rampDownWaitTimeMinutes"), out var __jsonRampDownWaitTimeMinutes) ? (int?)__jsonRampDownWaitTimeMinutes : RampDownWaitTimeMinute;} + {_rampDownNotificationMessage = If( json?.PropertyT("rampDownNotificationMessage"), out var __jsonRampDownNotificationMessage) ? (string)__jsonRampDownNotificationMessage : (string)RampDownNotificationMessage;} + {_offPeakStartTime = If( json?.PropertyT("offPeakStartTime"), out var __jsonOffPeakStartTime) ? global::System.DateTime.TryParse((string)__jsonOffPeakStartTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonOffPeakStartTimeValue) ? __jsonOffPeakStartTimeValue : OffPeakStartTime : OffPeakStartTime;} + {_offPeakLoadBalancingAlgorithm = If( json?.PropertyT("offPeakLoadBalancingAlgorithm"), out var __jsonOffPeakLoadBalancingAlgorithm) ? (string)__jsonOffPeakLoadBalancingAlgorithm : (string)OffPeakLoadBalancingAlgorithm;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._daysOfWeek) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._daysOfWeek ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("daysOfWeek",__w); + } + AddIf( null != this._rampUpStartTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampUpStartTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "rampUpStartTime" ,container.Add ); + AddIf( null != (((object)this._rampUpLoadBalancingAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampUpLoadBalancingAlgorithm.ToString()) : null, "rampUpLoadBalancingAlgorithm" ,container.Add ); + AddIf( null != this._rampUpMinimumHostsPct ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._rampUpMinimumHostsPct) : null, "rampUpMinimumHostsPct" ,container.Add ); + AddIf( null != this._rampUpCapacityThresholdPct ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._rampUpCapacityThresholdPct) : null, "rampUpCapacityThresholdPct" ,container.Add ); + AddIf( null != this._peakStartTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._peakStartTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "peakStartTime" ,container.Add ); + AddIf( null != (((object)this._peakLoadBalancingAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._peakLoadBalancingAlgorithm.ToString()) : null, "peakLoadBalancingAlgorithm" ,container.Add ); + AddIf( null != this._rampDownStartTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampDownStartTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "rampDownStartTime" ,container.Add ); + AddIf( null != (((object)this._rampDownLoadBalancingAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampDownLoadBalancingAlgorithm.ToString()) : null, "rampDownLoadBalancingAlgorithm" ,container.Add ); + AddIf( null != this._rampDownMinimumHostsPct ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._rampDownMinimumHostsPct) : null, "rampDownMinimumHostsPct" ,container.Add ); + AddIf( null != this._rampDownCapacityThresholdPct ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._rampDownCapacityThresholdPct) : null, "rampDownCapacityThresholdPct" ,container.Add ); + AddIf( null != this._rampDownForceLogoffUser ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._rampDownForceLogoffUser) : null, "rampDownForceLogoffUsers" ,container.Add ); + AddIf( null != (((object)this._rampDownStopHostsWhen)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampDownStopHostsWhen.ToString()) : null, "rampDownStopHostsWhen" ,container.Add ); + AddIf( null != this._rampDownWaitTimeMinute ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._rampDownWaitTimeMinute) : null, "rampDownWaitTimeMinutes" ,container.Add ); + AddIf( null != (((object)this._rampDownNotificationMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._rampDownNotificationMessage.ToString()) : null, "rampDownNotificationMessage" ,container.Add ); + AddIf( null != this._offPeakStartTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._offPeakStartTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "offPeakStartTime" ,container.Add ); + AddIf( null != (((object)this._offPeakLoadBalancingAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._offPeakLoadBalancingAlgorithm.ToString()) : null, "offPeakLoadBalancingAlgorithm" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.PowerShell.cs new file mode 100644 index 000000000000..84f770edc3b2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// When set schedules the hostpool update at specific time. + [System.ComponentModel.TypeConverter(typeof(ScheduledTimePropertiesTypeConverter))] + public partial class ScheduledTimeProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScheduledTimeProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScheduledTimeProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScheduledTimeProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).Time = (global::System.DateTime?) content.GetValueForProperty("Time",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).Time, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).TimeZone, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScheduledTimeProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).Time = (global::System.DateTime?) content.GetValueForProperty("Time",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).Time, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).TimeZone = (string) content.GetValueForProperty("TimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal)this).TimeZone, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// When set schedules the hostpool update at specific time. + [System.ComponentModel.TypeConverter(typeof(ScheduledTimePropertiesTypeConverter))] + public partial interface IScheduledTimeProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.TypeConverter.cs new file mode 100644 index 000000000000..bfd63eda375b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScheduledTimePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScheduledTimeProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScheduledTimeProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScheduledTimeProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.cs new file mode 100644 index 000000000000..5fa8bdb58426 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.cs @@ -0,0 +1,72 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// When set schedules the hostpool update at specific time. + public partial class ScheduledTimeProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimePropertiesInternal + { + + /// Backing field for property. + private global::System.DateTime? _time; + + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? Time { get => this._time; set => this._time = value; } + + /// Backing field for property. + private string _timeZone; + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string TimeZone { get => this._timeZone; set => this._timeZone = value; } + + /// Creates an new instance. + public ScheduledTimeProperties() + { + + } + } + /// When set schedules the hostpool update at specific time. + public partial interface IScheduledTimeProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? Time { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string TimeZone { get; set; } + + } + /// When set schedules the hostpool update at specific time. + internal partial interface IScheduledTimePropertiesInternal + + { + /// The time the hostpool update is schedule for. + global::System.DateTime? Time { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string TimeZone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.json.cs new file mode 100644 index 000000000000..6fec0b8503fb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ScheduledTimeProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// When set schedules the hostpool update at specific time. + public partial class ScheduledTimeProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ScheduledTimeProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ScheduledTimeProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_time = If( json?.PropertyT("time"), out var __jsonTime) ? global::System.DateTime.TryParse((string)__jsonTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonTimeValue) ? __jsonTimeValue : Time : Time;} + {_timeZone = If( json?.PropertyT("timeZone"), out var __jsonTimeZone) ? (string)__jsonTimeZone : (string)TimeZone;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._time ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._time?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "time" ,container.Add ); + AddIf( null != (((object)this._timeZone)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._timeZone.ToString()) : null, "timeZone" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.PowerShell.cs new file mode 100644 index 000000000000..d0f0eee38ea5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + /// + [System.ComponentModel.TypeConverter(typeof(SecondaryWindowPropertiesTypeConverter))] + public partial class SecondaryWindowProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SecondaryWindowProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SecondaryWindowProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SecondaryWindowProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).Hour = (int?) content.GetValueForProperty("Hour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).Hour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).DaysOfWeek = (string[]) content.GetValueForProperty("DaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).DaysOfWeek, __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 SecondaryWindowProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).Hour = (int?) content.GetValueForProperty("Hour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).Hour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).DaysOfWeek = (string[]) content.GetValueForProperty("DaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)this).DaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + [System.ComponentModel.TypeConverter(typeof(SecondaryWindowPropertiesTypeConverter))] + public partial interface ISecondaryWindowProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.TypeConverter.cs new file mode 100644 index 000000000000..e75f772a4d5b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SecondaryWindowPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SecondaryWindowProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SecondaryWindowProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SecondaryWindowProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.cs new file mode 100644 index 000000000000..ce50c5a465b8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.cs @@ -0,0 +1,68 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + /// + public partial class SecondaryWindowProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal + { + + /// Backing field for property. + private string[] _daysOfWeek; + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] DaysOfWeek { get => this._daysOfWeek; set => this._daysOfWeek = value; } + + /// Backing field for property. + private int? _hour; + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Hour { get => this._hour; set => this._hour = value; } + + /// Creates an new instance. + public SecondaryWindowProperties() + { + + } + } + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + public partial interface ISecondaryWindowProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] DaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? Hour { get; set; } + + } + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + internal partial interface ISecondaryWindowPropertiesInternal + + { + /// Set of days of the week on which this schedule is active. + string[] DaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? Hour { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.json.cs new file mode 100644 index 000000000000..14f7327e3eac --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SecondaryWindowProperties.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// Secondary maintenance windows is a list of days at one specific hour. Maintenance windows are 2 hours long. We try to + /// exercise this only when the primary window update fails. + /// + public partial class SecondaryWindowProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SecondaryWindowProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SecondaryWindowProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_hour = If( json?.PropertyT("hour"), out var __jsonHour) ? (int?)__jsonHour : Hour;} + {_daysOfWeek = If( json?.PropertyT("daysOfWeek"), out var __jsonDaysOfWeek) ? If( __jsonDaysOfWeek as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : DaysOfWeek;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._hour ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._hour) : null, "hour" ,container.Add ); + if (null != this._daysOfWeek) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._daysOfWeek ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("daysOfWeek",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.PowerShell.cs new file mode 100644 index 000000000000..9b03ecfe2fa4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents message sent to a UserSession. + [System.ComponentModel.TypeConverter(typeof(SendMessageTypeConverter))] + public partial class SendMessage + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SendMessage(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SendMessage(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SendMessage(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageTitle = (string) content.GetValueForProperty("MessageTitle",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageTitle, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageBody = (string) content.GetValueForProperty("MessageBody",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageBody, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SendMessage(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageTitle = (string) content.GetValueForProperty("MessageTitle",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageTitle, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageBody = (string) content.GetValueForProperty("MessageBody",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal)this).MessageBody, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents message sent to a UserSession. + [System.ComponentModel.TypeConverter(typeof(SendMessageTypeConverter))] + public partial interface ISendMessage + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.TypeConverter.cs new file mode 100644 index 000000000000..2e78fe972549 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SendMessageTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SendMessage.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SendMessage.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SendMessage.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.cs new file mode 100644 index 000000000000..ed8c67cc7087 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents message sent to a UserSession. + public partial class SendMessage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessageInternal + { + + /// Backing field for property. + private string _messageBody; + + /// Body of message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MessageBody { get => this._messageBody; set => this._messageBody = value; } + + /// Backing field for property. + private string _messageTitle; + + /// Title of message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MessageTitle { get => this._messageTitle; set => this._messageTitle = value; } + + /// Creates an new instance. + public SendMessage() + { + + } + } + /// Represents message sent to a UserSession. + public partial interface ISendMessage : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Body of message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Body of message.", + SerializedName = @"messageBody", + PossibleTypes = new [] { typeof(string) })] + string MessageBody { get; set; } + /// Title of message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title of message.", + SerializedName = @"messageTitle", + PossibleTypes = new [] { typeof(string) })] + string MessageTitle { get; set; } + + } + /// Represents message sent to a UserSession. + internal partial interface ISendMessageInternal + + { + /// Body of message. + string MessageBody { get; set; } + /// Title of message. + string MessageTitle { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.json.cs new file mode 100644 index 000000000000..9986850ed3f3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SendMessage.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents message sent to a UserSession. + public partial class SendMessage + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SendMessage(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SendMessage(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_messageTitle = If( json?.PropertyT("messageTitle"), out var __jsonMessageTitle) ? (string)__jsonMessageTitle : (string)MessageTitle;} + {_messageBody = If( json?.PropertyT("messageBody"), out var __jsonMessageBody) ? (string)__jsonMessageBody : (string)MessageBody;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._messageTitle)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._messageTitle.ToString()) : null, "messageTitle" ,container.Add ); + AddIf( null != (((object)this._messageBody)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._messageBody.ToString()) : null, "messageBody" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.PowerShell.cs new file mode 100644 index 000000000000..d23a92c303dc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Service specification payload + [System.ComponentModel.TypeConverter(typeof(ServiceSpecificationTypeConverter))] + public partial class ServiceSpecification + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceSpecification(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceSpecification(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceSpecification(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.ConvertFrom)); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceSpecification(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecificationTypeConverter.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service specification payload + [System.ComponentModel.TypeConverter(typeof(ServiceSpecificationTypeConverter))] + public partial interface IServiceSpecification + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.TypeConverter.cs new file mode 100644 index 000000000000..1cd97c696c29 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceSpecificationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceSpecification.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceSpecification.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceSpecification.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.cs new file mode 100644 index 000000000000..6ee16f1f4c29 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Service specification payload + public partial class ServiceSpecification : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecificationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] _logSpecification; + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] LogSpecification { get => this._logSpecification; set => this._logSpecification = value; } + + /// Creates an new instance. + public ServiceSpecification() + { + + } + } + /// Service specification payload + public partial interface IServiceSpecification : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] LogSpecification { get; set; } + + } + /// Service specification payload + internal partial interface IServiceSpecificationInternal + + { + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification[] LogSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.json.cs new file mode 100644 index 000000000000..277f4365bfbe --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/ServiceSpecification.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Service specification payload + public partial class ServiceSpecification + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IServiceSpecification FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new ServiceSpecification(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceSpecification(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_logSpecification = If( json?.PropertyT("logSpecifications"), out var __jsonLogSpecifications) ? If( __jsonLogSpecifications as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ILogSpecification) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.LogSpecification.FromJson(__u) )) ))() : null : LogSpecification;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._logSpecification) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._logSpecification ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("logSpecifications",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.PowerShell.cs new file mode 100644 index 000000000000..b444148b509d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.PowerShell.cs @@ -0,0 +1,195 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a SessionHost definition. + [System.ComponentModel.TypeConverter(typeof(SessionHostTypeConverter))] + public partial class SessionHost + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHost(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHost(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHost(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState?) content.GetValueForProperty("UpdateState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastHeartBeat = (global::System.DateTime?) content.GetValueForProperty("LastHeartBeat",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastHeartBeat, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Session = (int?) content.GetValueForProperty("Session",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Session, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AgentVersion = (string) content.GetValueForProperty("AgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AgentVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).VirtualMachineId = (string) content.GetValueForProperty("VirtualMachineId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).VirtualMachineId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AssignedUser, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).StatusTimestamp = (global::System.DateTime?) content.GetValueForProperty("StatusTimestamp",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).StatusTimestamp, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).OSVersion = (string) content.GetValueForProperty("OSVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).OSVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SxSStackVersion = (string) content.GetValueForProperty("SxSStackVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SxSStackVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateErrorMessage = (string) content.GetValueForProperty("UpdateErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateErrorMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).HealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[]) content.GetValueForProperty("HealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).HealthCheckResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReportTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastSessionHostUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastSessionHostUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastSessionHostUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("ConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageResourceId = (string) content.GetValueForProperty("ImageResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SessionHost(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState?) content.GetValueForProperty("UpdateState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastHeartBeat = (global::System.DateTime?) content.GetValueForProperty("LastHeartBeat",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastHeartBeat, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Session = (int?) content.GetValueForProperty("Session",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).Session, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AgentVersion = (string) content.GetValueForProperty("AgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AgentVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).VirtualMachineId = (string) content.GetValueForProperty("VirtualMachineId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).VirtualMachineId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).AssignedUser, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).StatusTimestamp = (global::System.DateTime?) content.GetValueForProperty("StatusTimestamp",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).StatusTimestamp, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).OSVersion = (string) content.GetValueForProperty("OSVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).OSVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SxSStackVersion = (string) content.GetValueForProperty("SxSStackVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).SxSStackVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateErrorMessage = (string) content.GetValueForProperty("UpdateErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateErrorMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).HealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[]) content.GetValueForProperty("HealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).HealthCheckResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReportTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastSessionHostUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastSessionHostUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).LastSessionHostUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("ConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageResourceId = (string) content.GetValueForProperty("ImageResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).ImageResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a SessionHost definition. + [System.ComponentModel.TypeConverter(typeof(SessionHostTypeConverter))] + public partial interface ISessionHost + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.TypeConverter.cs new file mode 100644 index 000000000000..cf6d5524fa23 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHost.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHost.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHost.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.cs new file mode 100644 index 000000000000..19e12e90def7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.cs @@ -0,0 +1,508 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a SessionHost definition. + public partial class SessionHost : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Version of agent on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string AgentVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AgentVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AgentVersion = value ?? null; } + + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? AllowNewSession { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AllowNewSession; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AllowNewSession = value ?? default(bool); } + + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string AssignedUser { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AssignedUser; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).AssignedUser = value ?? null; } + + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ConfigurationLastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime; } + + /// List of SessionHostHealthCheckReports + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] HealthCheckResult { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostHealthCheckResult; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// The resourceId of the image of session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ImageResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageResourceId; } + + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageType; } + + /// Last heart beat from SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastHeartBeat { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastHeartBeat; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastHeartBeat = value ?? default(global::System.DateTime); } + + /// The last time update was completed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastSessionHostUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastSessionHostUpdateTime; } + + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? LastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastUpdateTime; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for ConfigurationLastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.ConfigurationLastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostConfigurationLastUpdateTime = value; } + + /// Internal Acessors for HealthCheckResult + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.HealthCheckResult { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostHealthCheckResult; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SessionHostHealthCheckResult = value; } + + /// Internal Acessors for ImageResourceId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.ImageResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageResourceId = value; } + + /// Internal Acessors for ImageType + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.ImageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ImageType = value; } + + /// Internal Acessors for LastSessionHostUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.LastSessionHostUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastSessionHostUpdateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastSessionHostUpdateTime = value; } + + /// Internal Acessors for LastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.LastUpdateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastUpdateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).LastUpdateTime = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostProperties()); set { {_property = value;} } } + + /// Internal Acessors for ResourceId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ResourceId = value; } + + /// Internal Acessors for StatusTimestamp + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.StatusTimestamp { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).StatusTimestamp; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).StatusTimestamp = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for UpdateStatus + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.UpdateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateStatus = value; } + + /// Internal Acessors for VirtualMachineId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostInternal.VirtualMachineId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).VirtualMachineId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).VirtualMachineId = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// The version of the OS on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string OSVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).OSVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).OSVersion = value ?? null; } + + /// ObjectId of SessionHost. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ObjectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties _property; + + /// Detailed properties for SessionHost + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostProperties()); set => this._property = value; } + + /// Resource Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).ResourceId; } + + /// Number of sessions on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? Session { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).Session; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).Session = value ?? default(int); } + + /// Status for a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).Status = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status)""); } + + /// The timestamp of the status. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? StatusTimestamp { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).StatusTimestamp; } + + /// The version of the side by side stack on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SxSStackVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SxSStackVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).SxSStackVersion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string UpdateErrorMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateErrorMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateErrorMessage = value ?? null; } + + /// Update state of a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState)""); } + + /// Updating state of the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).UpdateStatus; } + + /// Virtual Machine Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string VirtualMachineId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)Property).VirtualMachineId; } + + /// Creates an new instance. + public SessionHost() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Represents a SessionHost definition. + public partial interface ISessionHost : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Version of agent on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of agent on SessionHost.", + SerializedName = @"agentVersion", + PossibleTypes = new [] { typeof(string) })] + string AgentVersion { get; set; } + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + string AssignedUser { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"This time will match the time in the SHC for when the update was initiated.", + SerializedName = @"sessionHostConfigurationLastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ConfigurationLastUpdateTime { get; } + /// List of SessionHostHealthCheckReports + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of SessionHostHealthCheckReports", + SerializedName = @"sessionHostHealthCheckResults", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] HealthCheckResult { get; } + /// The resourceId of the image of session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The resourceId of the image of session host.", + SerializedName = @"imageResourceId", + PossibleTypes = new [] { typeof(string) })] + string ImageResourceId { get; } + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of image session hosts use in the hostpool.", + SerializedName = @"imageType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get; } + /// Last heart beat from SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Last heart beat from SessionHost.", + SerializedName = @"lastHeartBeat", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastHeartBeat { get; set; } + /// The last time update was completed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The last time update was completed.", + SerializedName = @"lastSessionHostUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastSessionHostUpdateTime { get; } + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the last update.", + SerializedName = @"lastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdateTime { get; } + /// The version of the OS on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the OS on the session host.", + SerializedName = @"osVersion", + PossibleTypes = new [] { typeof(string) })] + string OSVersion { get; set; } + /// ObjectId of SessionHost. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of SessionHost. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// Resource Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Resource Id of SessionHost's underlying virtual machine.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; } + /// Number of sessions on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of sessions on SessionHost.", + SerializedName = @"sessions", + PossibleTypes = new [] { typeof(int) })] + int? Session { get; set; } + /// Status for a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status for a SessionHost.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get; set; } + /// The timestamp of the status. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the status.", + SerializedName = @"statusTimestamp", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? StatusTimestamp { get; } + /// The version of the side by side stack on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the side by side stack on the session host.", + SerializedName = @"sxSStackVersion", + PossibleTypes = new [] { typeof(string) })] + string SxSStackVersion { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The error message.", + SerializedName = @"updateErrorMessage", + PossibleTypes = new [] { typeof(string) })] + string UpdateErrorMessage { get; set; } + /// Update state of a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Update state of a SessionHost.", + SerializedName = @"updateState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get; set; } + /// Updating state of the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Updating state of the session host.", + SerializedName = @"updateStatus", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get; } + /// Virtual Machine Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Virtual Machine Id of SessionHost's underlying virtual machine.", + SerializedName = @"virtualMachineId", + PossibleTypes = new [] { typeof(string) })] + string VirtualMachineId { get; } + + } + /// Represents a SessionHost definition. + internal partial interface ISessionHostInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Version of agent on SessionHost. + string AgentVersion { get; set; } + /// Allow a new session. + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + string AssignedUser { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + global::System.DateTime? ConfigurationLastUpdateTime { get; set; } + /// List of SessionHostHealthCheckReports + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] HealthCheckResult { get; set; } + /// The resourceId of the image of session host. + string ImageResourceId { get; set; } + /// The type of image session hosts use in the hostpool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get; set; } + /// Last heart beat from SessionHost. + global::System.DateTime? LastHeartBeat { get; set; } + /// The last time update was completed. + global::System.DateTime? LastSessionHostUpdateTime { get; set; } + /// The timestamp of the last update. + global::System.DateTime? LastUpdateTime { get; set; } + /// The version of the OS on the session host. + string OSVersion { get; set; } + /// ObjectId of SessionHost. (internal use) + string ObjectId { get; set; } + /// Detailed properties for SessionHost + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties Property { get; set; } + /// Resource Id of SessionHost's underlying virtual machine. + string ResourceId { get; set; } + /// Number of sessions on SessionHost. + int? Session { get; set; } + /// Status for a SessionHost. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get; set; } + /// The timestamp of the status. + global::System.DateTime? StatusTimestamp { get; set; } + /// The version of the side by side stack on the session host. + string SxSStackVersion { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The error message. + string UpdateErrorMessage { get; set; } + /// Update state of a SessionHost. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get; set; } + /// Updating state of the session host. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get; set; } + /// Virtual Machine Id of SessionHost's underlying virtual machine. + string VirtualMachineId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.json.cs new file mode 100644 index 000000000000..98c9c2e07b42 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHost.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a SessionHost definition. + public partial class SessionHost + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHost(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHost(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.PowerShell.cs new file mode 100644 index 000000000000..a0781b6c3512 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.PowerShell.cs @@ -0,0 +1,152 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + [System.ComponentModel.TypeConverter(typeof(SessionHostComponentUpdateConfigurationPropertiesTypeConverter))] + public partial class SessionHostComponentUpdateConfigurationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostComponentUpdateConfigurationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostComponentUpdateConfigurationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostComponentUpdateConfigurationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("PrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("MaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).UseSessionHostLocalTime = (bool?) content.GetValueForProperty("UseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).UseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceWindowTimeZone = (string) content.GetValueForProperty("MaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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 SessionHostComponentUpdateConfigurationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties) content.GetValueForProperty("PrimaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindow = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties) content.GetValueForProperty("SecondaryWindow",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindow, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType?) content.GetValueForProperty("MaintenanceType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).UseSessionHostLocalTime = (bool?) content.GetValueForProperty("UseSessionHostLocalTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).UseSessionHostLocalTime, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceWindowTimeZone = (string) content.GetValueForProperty("MaintenanceWindowTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).MaintenanceWindowTimeZone, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowHour = (int?) content.GetValueForProperty("PrimaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowDayOfWeek = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek?) content.GetValueForProperty("PrimaryWindowDayOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).PrimaryWindowDayOfWeek, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowHour = (int?) content.GetValueForProperty("SecondaryWindowHour",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowHour, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowDaysOfWeek = (string[]) content.GetValueForProperty("SecondaryWindowDaysOfWeek",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal)this).SecondaryWindowDaysOfWeek, __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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The session host configuration for updating agent, monitoring agent, and stack component. + [System.ComponentModel.TypeConverter(typeof(SessionHostComponentUpdateConfigurationPropertiesTypeConverter))] + public partial interface ISessionHostComponentUpdateConfigurationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.TypeConverter.cs new file mode 100644 index 000000000000..4b4e619324c3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostComponentUpdateConfigurationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostComponentUpdateConfigurationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostComponentUpdateConfigurationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostComponentUpdateConfigurationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.cs new file mode 100644 index 000000000000..c5c12f09f645 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.cs @@ -0,0 +1,185 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + public partial class SessionHostComponentUpdateConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? _maintenanceType; + + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? MaintenanceType { get => this._maintenanceType; set => this._maintenanceType = value; } + + /// Backing field for property. + private string _maintenanceWindowTimeZone; + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MaintenanceWindowTimeZone { get => this._maintenanceWindowTimeZone; set => this._maintenanceWindowTimeZone = value; } + + /// Internal Acessors for PrimaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal.PrimaryWindow { get => (this._primaryWindow = this._primaryWindow ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowProperties()); set { {_primaryWindow = value;} } } + + /// Internal Acessors for SecondaryWindow + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationPropertiesInternal.SecondaryWindow { get => (this._secondaryWindow = this._secondaryWindow ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowProperties()); set { {_secondaryWindow = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties _primaryWindow; + + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties PrimaryWindow { get => (this._primaryWindow = this._primaryWindow ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowProperties()); set => this._primaryWindow = value; } + + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)PrimaryWindow).DayOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)PrimaryWindow).DayOfWeek = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? PrimaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)PrimaryWindow).Hour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowPropertiesInternal)PrimaryWindow).Hour = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties _secondaryWindow; + + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SecondaryWindow { get => (this._secondaryWindow = this._secondaryWindow ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowProperties()); set => this._secondaryWindow = value; } + + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] SecondaryWindowDaysOfWeek { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)SecondaryWindow).DaysOfWeek; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)SecondaryWindow).DaysOfWeek = value ?? null /* arrayOf */; } + + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? SecondaryWindowHour { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)SecondaryWindow).Hour; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowPropertiesInternal)SecondaryWindow).Hour = value ?? default(int); } + + /// Backing field for property. + private bool? _useSessionHostLocalTime; + + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? UseSessionHostLocalTime { get => this._useSessionHostLocalTime; set => this._useSessionHostLocalTime = value; } + + /// + /// Creates an new instance. + /// + public SessionHostComponentUpdateConfigurationProperties() + { + + } + } + /// The session host configuration for updating agent, monitoring agent, and stack component. + public partial interface ISessionHostComponentUpdateConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The type of maintenance for session host components. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? MaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + string MaintenanceWindowTimeZone { get; set; } + /// Day of the week. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? PrimaryWindowHour { get; set; } + /// Set of days of the week on which this schedule is active. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + int? SecondaryWindowHour { get; set; } + /// Whether to use localTime of the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(bool) })] + bool? UseSessionHostLocalTime { get; set; } + + } + /// The session host configuration for updating agent, monitoring agent, and stack component. + internal partial interface ISessionHostComponentUpdateConfigurationPropertiesInternal + + { + /// The type of maintenance for session host components. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType? MaintenanceType { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string MaintenanceWindowTimeZone { get; set; } + /// + /// Primary Window of the maintenance. Maintenance windows are 2 hours long. We try to push component update in this window + /// first. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceWindowProperties PrimaryWindow { get; set; } + /// Day of the week. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek? PrimaryWindowDayOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? PrimaryWindowHour { get; set; } + /// + /// Secondary maintenance windows. Maintenance windows are 2 hours long. We try to exercise this only when the primary window + /// update fails. + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISecondaryWindowProperties SecondaryWindow { get; set; } + /// Set of days of the week on which this schedule is active. + string[] SecondaryWindowDaysOfWeek { get; set; } + /// The update start hour of the day. (0 - 23) + int? SecondaryWindowHour { get; set; } + /// Whether to use localTime of the virtual machine. + bool? UseSessionHostLocalTime { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.json.cs new file mode 100644 index 000000000000..2debf7e4cc2a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostComponentUpdateConfigurationProperties.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// The session host configuration for updating agent, monitoring agent, and stack component. + /// + public partial class SessionHostComponentUpdateConfigurationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostComponentUpdateConfigurationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostComponentUpdateConfigurationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostComponentUpdateConfigurationProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_primaryWindow = If( json?.PropertyT("primaryWindow"), out var __jsonPrimaryWindow) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceWindowProperties.FromJson(__jsonPrimaryWindow) : PrimaryWindow;} + {_secondaryWindow = If( json?.PropertyT("secondaryWindow"), out var __jsonSecondaryWindow) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SecondaryWindowProperties.FromJson(__jsonSecondaryWindow) : SecondaryWindow;} + {_maintenanceType = If( json?.PropertyT("maintenanceType"), out var __jsonMaintenanceType) ? (string)__jsonMaintenanceType : (string)MaintenanceType;} + {_useSessionHostLocalTime = If( json?.PropertyT("useSessionHostLocalTime"), out var __jsonUseSessionHostLocalTime) ? (bool?)__jsonUseSessionHostLocalTime : UseSessionHostLocalTime;} + {_maintenanceWindowTimeZone = If( json?.PropertyT("maintenanceWindowTimeZone"), out var __jsonMaintenanceWindowTimeZone) ? (string)__jsonMaintenanceWindowTimeZone : (string)MaintenanceWindowTimeZone;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._primaryWindow ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._primaryWindow.ToJson(null,serializationMode) : null, "primaryWindow" ,container.Add ); + AddIf( null != this._secondaryWindow ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._secondaryWindow.ToJson(null,serializationMode) : null, "secondaryWindow" ,container.Add ); + AddIf( null != (((object)this._maintenanceType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._maintenanceType.ToString()) : null, "maintenanceType" ,container.Add ); + AddIf( null != this._useSessionHostLocalTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._useSessionHostLocalTime) : null, "useSessionHostLocalTime" ,container.Add ); + AddIf( null != (((object)this._maintenanceWindowTimeZone)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._maintenanceWindowTimeZone.ToString()) : null, "maintenanceWindowTimeZone" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.PowerShell.cs new file mode 100644 index 000000000000..37a026ed6fb3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.PowerShell.cs @@ -0,0 +1,181 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Session host configurations of HostPool. + [System.ComponentModel.TypeConverter(typeof(SessionHostConfigurationPropertiesTypeConverter))] + public partial class SessionHostConfigurationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostConfigurationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostConfigurationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostConfigurationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties) content.GetValueForProperty("ImageInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties) content.GetValueForProperty("DomainInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMSizeId = (string) content.GetValueForProperty("VMSizeId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMSizeId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DiskType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType?) content.GetValueForProperty("DiskType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DiskType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMCustomConfigurationUri = (string) content.GetValueForProperty("VMCustomConfigurationUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMCustomConfigurationUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoMarketPlaceInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties) content.GetValueForProperty("ImageInfoMarketPlaceInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoMarketPlaceInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageInfoType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoStorageBlobUri = (string) content.GetValueForProperty("ImageInfoStorageBlobUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoStorageBlobUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoCustomId = (string) content.GetValueForProperty("ImageInfoCustomId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoCustomId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoCredentials = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties) content.GetValueForProperty("DomainInfoCredentials",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoCredentials, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoName = (string) content.GetValueForProperty("DomainInfoName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoJoinType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType?) content.GetValueForProperty("DomainInfoJoinType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoJoinType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoMdmProviderGuid = (string) content.GetValueForProperty("DomainInfoMdmProviderGuid",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoMdmProviderGuid, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoOffer = (string) content.GetValueForProperty("MarketPlaceInfoOffer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoOffer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoPublisher = (string) content.GetValueForProperty("MarketPlaceInfoPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoSku = (string) content.GetValueForProperty("MarketPlaceInfoSku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoSku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoExactVersion = (string) content.GetValueForProperty("MarketPlaceInfoExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoExactVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsLocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsLocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsLocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsDomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsDomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsDomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordSecretName, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SessionHostConfigurationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties) content.GetValueForProperty("ImageInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties) content.GetValueForProperty("DomainInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMSizeId = (string) content.GetValueForProperty("VMSizeId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMSizeId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DiskType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType?) content.GetValueForProperty("DiskType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DiskType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMCustomConfigurationUri = (string) content.GetValueForProperty("VMCustomConfigurationUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).VMCustomConfigurationUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoMarketPlaceInfo = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties) content.GetValueForProperty("ImageInfoMarketPlaceInfo",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoMarketPlaceInfo, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MarketPlaceInfoPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageInfoType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoStorageBlobUri = (string) content.GetValueForProperty("ImageInfoStorageBlobUri",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoStorageBlobUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoCustomId = (string) content.GetValueForProperty("ImageInfoCustomId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).ImageInfoCustomId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoCredentials = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties) content.GetValueForProperty("DomainInfoCredentials",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoCredentials, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.CredentialsPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoName = (string) content.GetValueForProperty("DomainInfoName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoJoinType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType?) content.GetValueForProperty("DomainInfoJoinType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoJoinType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoMdmProviderGuid = (string) content.GetValueForProperty("DomainInfoMdmProviderGuid",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainInfoMdmProviderGuid, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoOffer = (string) content.GetValueForProperty("MarketPlaceInfoOffer",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoOffer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoPublisher = (string) content.GetValueForProperty("MarketPlaceInfoPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoSku = (string) content.GetValueForProperty("MarketPlaceInfoSku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoSku, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoExactVersion = (string) content.GetValueForProperty("MarketPlaceInfoExactVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).MarketPlaceInfoExactVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsLocalAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsLocalAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsLocalAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsDomainAdmin = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties) content.GetValueForProperty("CredentialsDomainAdmin",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).CredentialsDomainAdmin, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.KeyvaultCredentialPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminUserName = (string) content.GetValueForProperty("LocalAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("LocalAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordSecretName = (string) content.GetValueForProperty("LocalAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).LocalAdminPasswordSecretName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminUserName = (string) content.GetValueForProperty("DomainAdminUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId = (string) content.GetValueForProperty("DomainAdminPasswordKeyVaultResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordKeyVaultResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordSecretName = (string) content.GetValueForProperty("DomainAdminPasswordSecretName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal)this).DomainAdminPasswordSecretName, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Session host configurations of HostPool. + [System.ComponentModel.TypeConverter(typeof(SessionHostConfigurationPropertiesTypeConverter))] + public partial interface ISessionHostConfigurationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.TypeConverter.cs new file mode 100644 index 000000000000..8858cd1b914b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.TypeConverter.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostConfigurationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostConfigurationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostConfigurationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostConfigurationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.cs new file mode 100644 index 000000000000..ab5dd7b6513b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.cs @@ -0,0 +1,372 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Session host configurations of HostPool. + public partial class SessionHostConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType? _diskType; + + /// The disk type used by virtual machine in hostpool session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType? DiskType { get => this._diskType; set => this._diskType = value; } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminPasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminPasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminPasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminPasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).DomainAdminUserName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties _domainInfo; + + /// Domain configurations of session hosts. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties DomainInfo { get => (this._domainInfo = this._domainInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoProperties()); set => this._domainInfo = value; } + + /// The type of domain join done by the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? DomainInfoJoinType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).JoinType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).JoinType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType)""); } + + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainInfoMdmProviderGuid { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).MdmProviderGuid; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).MdmProviderGuid = value ?? null; } + + /// The domain a virtual machine connected to a hostpool will join. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string DomainInfoName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties _imageInfo; + + /// Image configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties ImageInfo { get => (this._imageInfo = this._imageInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoProperties()); set => this._imageInfo = value; } + + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ImageInfoCustomId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).CustomId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).CustomId = value ?? null; } + + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ImageInfoStorageBlobUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).StorageBlobUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).StorageBlobUri = value ?? null; } + + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageInfoType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType)""); } + + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordKeyVaultResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminPasswordKeyVaultResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminPasswordKeyVaultResourceId = value ?? null; } + + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminPasswordSecretName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminPasswordSecretName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminPasswordSecretName = value ?? null; } + + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string LocalAdminUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).LocalAdminUserName = value ?? null; } + + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoExactVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoExactVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoExactVersion = value ?? null; } + + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoOffer { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoOffer; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoOffer = value ?? null; } + + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoPublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoPublisher = value ?? null; } + + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string MarketPlaceInfoSku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoSku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfoSku = value ?? null; } + + /// Internal Acessors for CredentialsDomainAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.CredentialsDomainAdmin { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).CredentialsDomainAdmin; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).CredentialsDomainAdmin = value; } + + /// Internal Acessors for CredentialsLocalAdmin + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.CredentialsLocalAdmin { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).CredentialsLocalAdmin; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).CredentialsLocalAdmin = value; } + + /// Internal Acessors for DomainInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.DomainInfo { get => (this._domainInfo = this._domainInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoProperties()); set { {_domainInfo = value;} } } + + /// Internal Acessors for DomainInfoCredentials + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.DomainInfoCredentials { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).Credentials; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoPropertiesInternal)DomainInfo).Credentials = value; } + + /// Internal Acessors for ImageInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.ImageInfo { get => (this._imageInfo = this._imageInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoProperties()); set { {_imageInfo = value;} } } + + /// Internal Acessors for ImageInfoMarketPlaceInfo + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationPropertiesInternal.ImageInfoMarketPlaceInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoPropertiesInternal)ImageInfo).MarketPlaceInfo = value; } + + /// Backing field for property. + private string _vMCustomConfigurationUri; + + /// + /// The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string VMCustomConfigurationUri { get => this._vMCustomConfigurationUri; set => this._vMCustomConfigurationUri = value; } + + /// Backing field for property. + private string _vMSizeId; + + /// The id of the size of a virtual machine connected to a hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string VMSizeId { get => this._vMSizeId; set => this._vMSizeId = value; } + + /// Creates an new instance. + public SessionHostConfigurationProperties() + { + + } + } + /// Session host configurations of HostPool. + public partial interface ISessionHostConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The disk type used by virtual machine in hostpool session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The disk type used by virtual machine in hostpool session host.", + SerializedName = @"diskType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType? DiskType { get; set; } + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string DomainAdminUserName { get; set; } + /// The type of domain join done by the virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of domain join done by the virtual machine.", + SerializedName = @"joinType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? DomainInfoJoinType { get; set; } + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines.", + SerializedName = @"mdmProviderGuid", + PossibleTypes = new [] { typeof(string) })] + string DomainInfoMdmProviderGuid { get; set; } + /// The domain a virtual machine connected to a hostpool will join. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The domain a virtual machine connected to a hostpool will join.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string DomainInfoName { get; set; } + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of the custom image or shared image. Image type must be CustomImage.", + SerializedName = @"customId", + PossibleTypes = new [] { typeof(string) })] + string ImageInfoCustomId { get; set; } + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The uri to the storage blob which contains the VHD. Image type must be StorageBlob.", + SerializedName = @"storageBlobUri", + PossibleTypes = new [] { typeof(string) })] + string ImageInfoStorageBlobUri { get; set; } + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of image session hosts use in the hostpool.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageInfoType { get; set; } + /// The keyvault resource id to the keyvault secrets. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault resource id to the keyvault secrets.", + SerializedName = @"passwordKeyVaultResourceId", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The keyvault secret name the password is stored in.", + SerializedName = @"passwordSecretName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user name to the account.", + SerializedName = @"userName", + PossibleTypes = new [] { typeof(string) })] + string LocalAdminUserName { get; set; } + /// The exact version of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The exact version of the image.", + SerializedName = @"exactVersion", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoExactVersion { get; set; } + /// The offer of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The offer of the image.", + SerializedName = @"offer", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoOffer { get; set; } + /// The publisher of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the image.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoPublisher { get; set; } + /// The sku of the image. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The sku of the image.", + SerializedName = @"sku", + PossibleTypes = new [] { typeof(string) })] + string MarketPlaceInfoSku { get; set; } + /// + /// The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The uri to the storage blob containing scripts to be run on the virtual machine after provisioning.", + SerializedName = @"vmCustomConfigurationUri", + PossibleTypes = new [] { typeof(string) })] + string VMCustomConfigurationUri { get; set; } + /// The id of the size of a virtual machine connected to a hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The id of the size of a virtual machine connected to a hostpool.", + SerializedName = @"vMSizeId", + PossibleTypes = new [] { typeof(string) })] + string VMSizeId { get; set; } + + } + /// Session host configurations of HostPool. + internal partial interface ISessionHostConfigurationPropertiesInternal + + { + /// The domain admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties CredentialsDomainAdmin { get; set; } + /// The local admin credentials. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IKeyvaultCredentialProperties CredentialsLocalAdmin { get; set; } + /// The disk type used by virtual machine in hostpool session host. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType? DiskType { get; set; } + /// The keyvault resource id to the keyvault secrets. + string DomainAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string DomainAdminPasswordSecretName { get; set; } + /// The user name to the account. + string DomainAdminUserName { get; set; } + /// Domain configurations of session hosts. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDomainInfoProperties DomainInfo { get; set; } + /// Credentials needed to create the virtual machine. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ICredentialsProperties DomainInfoCredentials { get; set; } + /// The type of domain join done by the virtual machine. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType? DomainInfoJoinType { get; set; } + /// + /// The MDM Provider GUID used during MDM enrollment for Azure AD joined virtual machines. + /// + string DomainInfoMdmProviderGuid { get; set; } + /// The domain a virtual machine connected to a hostpool will join. + string DomainInfoName { get; set; } + /// Image configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IImageInfoProperties ImageInfo { get; set; } + /// + /// The resource id of the custom image or shared image. Image type must be CustomImage. + /// + string ImageInfoCustomId { get; set; } + /// The values to uniquely identify a gallery image. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMarketPlaceInfoProperties ImageInfoMarketPlaceInfo { get; set; } + /// + /// The uri to the storage blob which contains the VHD. Image type must be StorageBlob. + /// + string ImageInfoStorageBlobUri { get; set; } + /// The type of image session hosts use in the hostpool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageInfoType { get; set; } + /// The keyvault resource id to the keyvault secrets. + string LocalAdminPasswordKeyVaultResourceId { get; set; } + /// The keyvault secret name the password is stored in. + string LocalAdminPasswordSecretName { get; set; } + /// The user name to the account. + string LocalAdminUserName { get; set; } + /// The exact version of the image. + string MarketPlaceInfoExactVersion { get; set; } + /// The offer of the image. + string MarketPlaceInfoOffer { get; set; } + /// The publisher of the image. + string MarketPlaceInfoPublisher { get; set; } + /// The sku of the image. + string MarketPlaceInfoSku { get; set; } + /// + /// The uri to the storage blob containing scripts to be run on the virtual machine after provisioning. + /// + string VMCustomConfigurationUri { get; set; } + /// The id of the size of a virtual machine connected to a hostpool. + string VMSizeId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.json.cs new file mode 100644 index 000000000000..ca0465faf383 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostConfigurationProperties.json.cs @@ -0,0 +1,110 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Session host configurations of HostPool. + public partial class SessionHostConfigurationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostConfigurationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostConfigurationProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_imageInfo = If( json?.PropertyT("imageInfo"), out var __jsonImageInfo) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ImageInfoProperties.FromJson(__jsonImageInfo) : ImageInfo;} + {_domainInfo = If( json?.PropertyT("domainInfo"), out var __jsonDomainInfo) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DomainInfoProperties.FromJson(__jsonDomainInfo) : DomainInfo;} + {_vMSizeId = If( json?.PropertyT("vMSizeId"), out var __jsonVMSizeId) ? (string)__jsonVMSizeId : (string)VMSizeId;} + {_diskType = If( json?.PropertyT("diskType"), out var __jsonDiskType) ? (string)__jsonDiskType : (string)DiskType;} + {_vMCustomConfigurationUri = If( json?.PropertyT("vmCustomConfigurationUri"), out var __jsonVMCustomConfigurationUri) ? (string)__jsonVMCustomConfigurationUri : (string)VMCustomConfigurationUri;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._imageInfo ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._imageInfo.ToJson(null,serializationMode) : null, "imageInfo" ,container.Add ); + AddIf( null != this._domainInfo ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._domainInfo.ToJson(null,serializationMode) : null, "domainInfo" ,container.Add ); + AddIf( null != (((object)this._vMSizeId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._vMSizeId.ToString()) : null, "vMSizeId" ,container.Add ); + AddIf( null != (((object)this._diskType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._diskType.ToString()) : null, "diskType" ,container.Add ); + AddIf( null != (((object)this._vMCustomConfigurationUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._vMCustomConfigurationUri.ToString()) : null, "vmCustomConfigurationUri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.PowerShell.cs new file mode 100644 index 000000000000..87ba741639dd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Contains details on the failure. + [System.ComponentModel.TypeConverter(typeof(SessionHostHealthCheckFailureDetailsTypeConverter))] + public partial class SessionHostHealthCheckFailureDetails + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostHealthCheckFailureDetails(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostHealthCheckFailureDetails(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostHealthCheckFailureDetails(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).ErrorCode = (int?) content.GetValueForProperty("ErrorCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).ErrorCode, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).LastHealthCheckDateTime = (global::System.DateTime?) content.GetValueForProperty("LastHealthCheckDateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).LastHealthCheckDateTime, (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 SessionHostHealthCheckFailureDetails(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).ErrorCode = (int?) content.GetValueForProperty("ErrorCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).ErrorCode, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).LastHealthCheckDateTime = (global::System.DateTime?) content.GetValueForProperty("LastHealthCheckDateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)this).LastHealthCheckDateTime, (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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Contains details on the failure. + [System.ComponentModel.TypeConverter(typeof(SessionHostHealthCheckFailureDetailsTypeConverter))] + public partial interface ISessionHostHealthCheckFailureDetails + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.TypeConverter.cs new file mode 100644 index 000000000000..2c56f888fa98 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.TypeConverter.cs @@ -0,0 +1,144 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostHealthCheckFailureDetailsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostHealthCheckFailureDetails.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostHealthCheckFailureDetails.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostHealthCheckFailureDetails.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.cs new file mode 100644 index 000000000000..b7048ec7f204 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.cs @@ -0,0 +1,89 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Contains details on the failure. + public partial class SessionHostHealthCheckFailureDetails : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal + { + + /// Backing field for property. + private int? _errorCode; + + /// Error code corresponding for the failure. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? ErrorCode { get => this._errorCode; } + + /// Backing field for property. + private global::System.DateTime? _lastHealthCheckDateTime; + + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastHealthCheckDateTime { get => this._lastHealthCheckDateTime; } + + /// Backing field for property. + private string _message; + + /// Failure message: hints on what is wrong and how to recover. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Message { get => this._message; } + + /// Internal Acessors for ErrorCode + int? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal.ErrorCode { get => this._errorCode; set { {_errorCode = value;} } } + + /// Internal Acessors for LastHealthCheckDateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal.LastHealthCheckDateTime { get => this._lastHealthCheckDateTime; set { {_lastHealthCheckDateTime = value;} } } + + /// Internal Acessors for Message + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal.Message { get => this._message; set { {_message = value;} } } + + /// Creates an new instance. + public SessionHostHealthCheckFailureDetails() + { + + } + } + /// Contains details on the failure. + public partial interface ISessionHostHealthCheckFailureDetails : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Error code corresponding for the failure. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Error code corresponding for the failure.", + SerializedName = @"errorCode", + PossibleTypes = new [] { typeof(int) })] + int? ErrorCode { get; } + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the last update.", + SerializedName = @"lastHealthCheckDateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastHealthCheckDateTime { get; } + /// Failure message: hints on what is wrong and how to recover. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Failure message: hints on what is wrong and how to recover.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; } + + } + /// Contains details on the failure. + internal partial interface ISessionHostHealthCheckFailureDetailsInternal + + { + /// Error code corresponding for the failure. + int? ErrorCode { get; set; } + /// The timestamp of the last update. + global::System.DateTime? LastHealthCheckDateTime { get; set; } + /// Failure message: hints on what is wrong and how to recover. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.json.cs new file mode 100644 index 000000000000..e7ebe259f3ec --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckFailureDetails.json.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Contains details on the failure. + public partial class SessionHostHealthCheckFailureDetails + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostHealthCheckFailureDetails(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostHealthCheckFailureDetails(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_errorCode = If( json?.PropertyT("errorCode"), out var __jsonErrorCode) ? (int?)__jsonErrorCode : ErrorCode;} + {_lastHealthCheckDateTime = If( json?.PropertyT("lastHealthCheckDateTime"), out var __jsonLastHealthCheckDateTime) ? global::System.DateTime.TryParse((string)__jsonLastHealthCheckDateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastHealthCheckDateTimeValue) ? __jsonLastHealthCheckDateTimeValue : LastHealthCheckDateTime : LastHealthCheckDateTime;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._errorCode ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._errorCode) : null, "errorCode" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._lastHealthCheckDateTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastHealthCheckDateTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastHealthCheckDateTime" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.PowerShell.cs new file mode 100644 index 000000000000..75223bc435a3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// The report for session host information. + [System.ComponentModel.TypeConverter(typeof(SessionHostHealthCheckReportTypeConverter))] + public partial class SessionHostHealthCheckReport + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostHealthCheckReport(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostHealthCheckReport(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostHealthCheckReport(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetail = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails) content.GetValueForProperty("AdditionalFailureDetail",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetail, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetailsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckName = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName?) content.GetValueForProperty("HealthCheckName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult?) content.GetValueForProperty("HealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckResult, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailMessage = (string) content.GetValueForProperty("AdditionalFailureDetailMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailErrorCode = (int?) content.GetValueForProperty("AdditionalFailureDetailErrorCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailErrorCode, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailLastHealthCheckDateTime = (global::System.DateTime?) content.GetValueForProperty("AdditionalFailureDetailLastHealthCheckDateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailLastHealthCheckDateTime, (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 SessionHostHealthCheckReport(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetail = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails) content.GetValueForProperty("AdditionalFailureDetail",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetail, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetailsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckName = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName?) content.GetValueForProperty("HealthCheckName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckName, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult?) content.GetValueForProperty("HealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).HealthCheckResult, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailMessage = (string) content.GetValueForProperty("AdditionalFailureDetailMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailErrorCode = (int?) content.GetValueForProperty("AdditionalFailureDetailErrorCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailErrorCode, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailLastHealthCheckDateTime = (global::System.DateTime?) content.GetValueForProperty("AdditionalFailureDetailLastHealthCheckDateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal)this).AdditionalFailureDetailLastHealthCheckDateTime, (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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The report for session host information. + [System.ComponentModel.TypeConverter(typeof(SessionHostHealthCheckReportTypeConverter))] + public partial interface ISessionHostHealthCheckReport + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.TypeConverter.cs new file mode 100644 index 000000000000..bb0ecd31a9cd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostHealthCheckReportTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostHealthCheckReport.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostHealthCheckReport.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostHealthCheckReport.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.cs new file mode 100644 index 000000000000..9f4b35b77aba --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.cs @@ -0,0 +1,132 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The report for session host information. + public partial class SessionHostHealthCheckReport : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails _additionalFailureDetail; + + /// Additional detailed information on the failure. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails AdditionalFailureDetail { get => (this._additionalFailureDetail = this._additionalFailureDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetails()); } + + /// Error code corresponding for the failure. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? AdditionalFailureDetailErrorCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).ErrorCode; } + + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? AdditionalFailureDetailLastHealthCheckDateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).LastHealthCheckDateTime; } + + /// Failure message: hints on what is wrong and how to recover. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string AdditionalFailureDetailMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).Message; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName? _healthCheckName; + + /// Represents the name of the health check operation performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName? HealthCheckName { get => this._healthCheckName; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult? _healthCheckResult; + + /// Represents the Health state of the health check we performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult? HealthCheckResult { get => this._healthCheckResult; } + + /// Internal Acessors for AdditionalFailureDetail + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.AdditionalFailureDetail { get => (this._additionalFailureDetail = this._additionalFailureDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetails()); set { {_additionalFailureDetail = value;} } } + + /// Internal Acessors for AdditionalFailureDetailErrorCode + int? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.AdditionalFailureDetailErrorCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).ErrorCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).ErrorCode = value; } + + /// Internal Acessors for AdditionalFailureDetailLastHealthCheckDateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.AdditionalFailureDetailLastHealthCheckDateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).LastHealthCheckDateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).LastHealthCheckDateTime = value; } + + /// Internal Acessors for AdditionalFailureDetailMessage + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.AdditionalFailureDetailMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetailsInternal)AdditionalFailureDetail).Message = value; } + + /// Internal Acessors for HealthCheckName + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.HealthCheckName { get => this._healthCheckName; set { {_healthCheckName = value;} } } + + /// Internal Acessors for HealthCheckResult + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReportInternal.HealthCheckResult { get => this._healthCheckResult; set { {_healthCheckResult = value;} } } + + /// Creates an new instance. + public SessionHostHealthCheckReport() + { + + } + } + /// The report for session host information. + public partial interface ISessionHostHealthCheckReport : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Error code corresponding for the failure. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Error code corresponding for the failure.", + SerializedName = @"errorCode", + PossibleTypes = new [] { typeof(int) })] + int? AdditionalFailureDetailErrorCode { get; } + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the last update.", + SerializedName = @"lastHealthCheckDateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? AdditionalFailureDetailLastHealthCheckDateTime { get; } + /// Failure message: hints on what is wrong and how to recover. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Failure message: hints on what is wrong and how to recover.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string AdditionalFailureDetailMessage { get; } + /// Represents the name of the health check operation performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Represents the name of the health check operation performed.", + SerializedName = @"healthCheckName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName? HealthCheckName { get; } + /// Represents the Health state of the health check we performed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Represents the Health state of the health check we performed.", + SerializedName = @"healthCheckResult", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult? HealthCheckResult { get; } + + } + /// The report for session host information. + internal partial interface ISessionHostHealthCheckReportInternal + + { + /// Additional detailed information on the failure. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckFailureDetails AdditionalFailureDetail { get; set; } + /// Error code corresponding for the failure. + int? AdditionalFailureDetailErrorCode { get; set; } + /// The timestamp of the last update. + global::System.DateTime? AdditionalFailureDetailLastHealthCheckDateTime { get; set; } + /// Failure message: hints on what is wrong and how to recover. + string AdditionalFailureDetailMessage { get; set; } + /// Represents the name of the health check operation performed. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName? HealthCheckName { get; set; } + /// Represents the Health state of the health check we performed. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult? HealthCheckResult { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.json.cs new file mode 100644 index 000000000000..4f02b32ce6b9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostHealthCheckReport.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// The report for session host information. + public partial class SessionHostHealthCheckReport + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostHealthCheckReport(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostHealthCheckReport(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_additionalFailureDetail = If( json?.PropertyT("additionalFailureDetails"), out var __jsonAdditionalFailureDetails) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckFailureDetails.FromJson(__jsonAdditionalFailureDetails) : AdditionalFailureDetail;} + {_healthCheckName = If( json?.PropertyT("healthCheckName"), out var __jsonHealthCheckName) ? (string)__jsonHealthCheckName : (string)HealthCheckName;} + {_healthCheckResult = If( json?.PropertyT("healthCheckResult"), out var __jsonHealthCheckResult) ? (string)__jsonHealthCheckResult : (string)HealthCheckResult;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._additionalFailureDetail ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._additionalFailureDetail.ToJson(null,serializationMode) : null, "additionalFailureDetails" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._healthCheckName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._healthCheckName.ToString()) : null, "healthCheckName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._healthCheckResult)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._healthCheckResult.ToString()) : null, "healthCheckResult" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.PowerShell.cs new file mode 100644 index 000000000000..7c88037a4679 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of SessionHost definitions. + [System.ComponentModel.TypeConverter(typeof(SessionHostListTypeConverter))] + public partial class SessionHostList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)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 SessionHostList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of SessionHost definitions. + [System.ComponentModel.TypeConverter(typeof(SessionHostListTypeConverter))] + public partial interface ISessionHostList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.TypeConverter.cs new file mode 100644 index 000000000000..7c6288f30dd2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.cs new file mode 100644 index 000000000000..d17776f90fe3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of SessionHost definitions. + public partial class SessionHostList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[] _value; + + /// List of SessionHost definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SessionHostList() + { + + } + } + /// List of SessionHost definitions. + public partial interface ISessionHostList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of SessionHost definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of SessionHost definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[] Value { get; set; } + + } + /// List of SessionHost definitions. + internal partial interface ISessionHostListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of SessionHost definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.json.cs new file mode 100644 index 000000000000..81dd19ffb081 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of SessionHost definitions. + public partial class SessionHostList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHost.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.PowerShell.cs new file mode 100644 index 000000000000..d62ec380b429 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// SessionHost properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(SessionHostPatchTypeConverter))] + public partial class SessionHostPatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostPatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostPatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostPatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AssignedUser, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SessionHostPatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal)this).AssignedUser, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// SessionHost properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(SessionHostPatchTypeConverter))] + public partial interface ISessionHostPatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.TypeConverter.cs new file mode 100644 index 000000000000..2b0599c4b469 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostPatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostPatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostPatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostPatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.cs new file mode 100644 index 000000000000..54a3d75ac81d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// SessionHost properties that can be patched. + public partial class SessionHostPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? AllowNewSession { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)Property).AllowNewSession; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)Property).AllowNewSession = value ?? default(bool); } + + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string AssignedUser { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)Property).AssignedUser; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)Property).AssignedUser = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchProperties()); set { {_property = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties _property; + + /// Detailed properties for SessionHost + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchProperties()); set => this._property = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public SessionHostPatch() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// SessionHost properties that can be patched. + public partial interface ISessionHostPatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + string AssignedUser { get; set; } + + } + /// SessionHost properties that can be patched. + internal partial interface ISessionHostPatchInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Allow a new session. + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + string AssignedUser { get; set; } + /// Detailed properties for SessionHost + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.json.cs new file mode 100644 index 000000000000..e47b546de6e7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// SessionHost properties that can be patched. + public partial class SessionHostPatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostPatch(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostPatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatchProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.PowerShell.cs new file mode 100644 index 000000000000..fe47d59326a6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// SessionHost properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(SessionHostPatchPropertiesTypeConverter))] + public partial class SessionHostPatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostPatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostPatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostPatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AssignedUser, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SessionHostPatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal)this).AssignedUser, 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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// SessionHost properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(SessionHostPatchPropertiesTypeConverter))] + public partial interface ISessionHostPatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..75f550f90356 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostPatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostPatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostPatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostPatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.cs new file mode 100644 index 000000000000..ef00e946628f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// SessionHost properties that can be patched. + public partial class SessionHostPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchPropertiesInternal + { + + /// Backing field for property. + private bool? _allowNewSession; + + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? AllowNewSession { get => this._allowNewSession; set => this._allowNewSession = value; } + + /// Backing field for property. + private string _assignedUser; + + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AssignedUser { get => this._assignedUser; set => this._assignedUser = value; } + + /// Creates an new instance. + public SessionHostPatchProperties() + { + + } + } + /// SessionHost properties that can be patched. + public partial interface ISessionHostPatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + string AssignedUser { get; set; } + + } + /// SessionHost properties that can be patched. + internal partial interface ISessionHostPatchPropertiesInternal + + { + /// Allow a new session. + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + string AssignedUser { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.json.cs new file mode 100644 index 000000000000..75f94a915111 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostPatchProperties.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// SessionHost properties that can be patched. + public partial class SessionHostPatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostPatchProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostPatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_allowNewSession = If( json?.PropertyT("allowNewSession"), out var __jsonAllowNewSession) ? (bool?)__jsonAllowNewSession : AllowNewSession;} + {_assignedUser = If( json?.PropertyT("assignedUser"), out var __jsonAssignedUser) ? (string)__jsonAssignedUser : (string)AssignedUser;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._allowNewSession ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._allowNewSession) : null, "allowNewSession" ,container.Add ); + AddIf( null != (((object)this._assignedUser)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._assignedUser.ToString()) : null, "assignedUser" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.PowerShell.cs new file mode 100644 index 000000000000..524b485d08f7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.PowerShell.cs @@ -0,0 +1,173 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for SessionHost properties. + [System.ComponentModel.TypeConverter(typeof(SessionHostPropertiesTypeConverter))] + public partial class SessionHostProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SessionHostProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SessionHostProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SessionHostProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastHeartBeat = (global::System.DateTime?) content.GetValueForProperty("LastHeartBeat",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastHeartBeat, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Session = (int?) content.GetValueForProperty("Session",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Session, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AgentVersion = (string) content.GetValueForProperty("AgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AgentVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).VirtualMachineId = (string) content.GetValueForProperty("VirtualMachineId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).VirtualMachineId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AssignedUser, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).StatusTimestamp = (global::System.DateTime?) content.GetValueForProperty("StatusTimestamp",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).StatusTimestamp, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).OSVersion = (string) content.GetValueForProperty("OSVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).OSVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SxSStackVersion = (string) content.GetValueForProperty("SxSStackVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SxSStackVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState?) content.GetValueForProperty("UpdateState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateErrorMessage = (string) content.GetValueForProperty("UpdateErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateErrorMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostHealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[]) content.GetValueForProperty("SessionHostHealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostHealthCheckResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReportTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastSessionHostUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastSessionHostUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastSessionHostUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageResourceId = (string) content.GetValueForProperty("ImageResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SessionHostProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastHeartBeat = (global::System.DateTime?) content.GetValueForProperty("LastHeartBeat",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastHeartBeat, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Session = (int?) content.GetValueForProperty("Session",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Session, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AgentVersion = (string) content.GetValueForProperty("AgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AgentVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AllowNewSession = (bool?) content.GetValueForProperty("AllowNewSession",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AllowNewSession, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).VirtualMachineId = (string) content.GetValueForProperty("VirtualMachineId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).VirtualMachineId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AssignedUser = (string) content.GetValueForProperty("AssignedUser",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).AssignedUser, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).StatusTimestamp = (global::System.DateTime?) content.GetValueForProperty("StatusTimestamp",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).StatusTimestamp, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).OSVersion = (string) content.GetValueForProperty("OSVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).OSVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SxSStackVersion = (string) content.GetValueForProperty("SxSStackVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SxSStackVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState?) content.GetValueForProperty("UpdateState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateErrorMessage = (string) content.GetValueForProperty("UpdateErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateErrorMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostHealthCheckResult = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[]) content.GetValueForProperty("SessionHostHealthCheckResult",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostHealthCheckResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReportTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastSessionHostUpdateTime = (global::System.DateTime?) content.GetValueForProperty("LastSessionHostUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).LastSessionHostUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostConfigurationLastUpdateTime = (global::System.DateTime?) content.GetValueForProperty("SessionHostConfigurationLastUpdateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).SessionHostConfigurationLastUpdateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageResourceId = (string) content.GetValueForProperty("ImageResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType?) content.GetValueForProperty("ImageType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).ImageType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus?) content.GetValueForProperty("UpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal)this).UpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for SessionHost properties. + [System.ComponentModel.TypeConverter(typeof(SessionHostPropertiesTypeConverter))] + public partial interface ISessionHostProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.TypeConverter.cs new file mode 100644 index 000000000000..d5e76e04a031 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SessionHostPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SessionHostProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SessionHostProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SessionHostProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.cs new file mode 100644 index 000000000000..05e806b52eeb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.cs @@ -0,0 +1,421 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for SessionHost properties. + public partial class SessionHostProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal + { + + /// Backing field for property. + private string _agentVersion; + + /// Version of agent on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AgentVersion { get => this._agentVersion; set => this._agentVersion = value; } + + /// Backing field for property. + private bool? _allowNewSession; + + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? AllowNewSession { get => this._allowNewSession; set => this._allowNewSession = value; } + + /// Backing field for property. + private string _assignedUser; + + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AssignedUser { get => this._assignedUser; set => this._assignedUser = value; } + + /// Backing field for property. + private string _imageResourceId; + + /// The resourceId of the image of session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ImageResourceId { get => this._imageResourceId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? _imageType; + + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get => this._imageType; } + + /// Backing field for property. + private global::System.DateTime? _lastHeartBeat; + + /// Last heart beat from SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastHeartBeat { get => this._lastHeartBeat; set => this._lastHeartBeat = value; } + + /// Backing field for property. + private global::System.DateTime? _lastSessionHostUpdateTime; + + /// The last time update was completed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastSessionHostUpdateTime { get => this._lastSessionHostUpdateTime; } + + /// Backing field for property. + private global::System.DateTime? _lastUpdateTime; + + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? LastUpdateTime { get => this._lastUpdateTime; } + + /// Internal Acessors for ImageResourceId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.ImageResourceId { get => this._imageResourceId; set { {_imageResourceId = value;} } } + + /// Internal Acessors for ImageType + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.ImageType { get => this._imageType; set { {_imageType = value;} } } + + /// Internal Acessors for LastSessionHostUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.LastSessionHostUpdateTime { get => this._lastSessionHostUpdateTime; set { {_lastSessionHostUpdateTime = value;} } } + + /// Internal Acessors for LastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.LastUpdateTime { get => this._lastUpdateTime; set { {_lastUpdateTime = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Internal Acessors for ResourceId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.ResourceId { get => this._resourceId; set { {_resourceId = value;} } } + + /// Internal Acessors for SessionHostConfigurationLastUpdateTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.SessionHostConfigurationLastUpdateTime { get => this._sessionHostConfigurationLastUpdateTime; set { {_sessionHostConfigurationLastUpdateTime = value;} } } + + /// Internal Acessors for SessionHostHealthCheckResult + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.SessionHostHealthCheckResult { get => this._sessionHostHealthCheckResult; set { {_sessionHostHealthCheckResult = value;} } } + + /// Internal Acessors for StatusTimestamp + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.StatusTimestamp { get => this._statusTimestamp; set { {_statusTimestamp = value;} } } + + /// Internal Acessors for UpdateStatus + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.UpdateStatus { get => this._updateStatus; set { {_updateStatus = value;} } } + + /// Internal Acessors for VirtualMachineId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPropertiesInternal.VirtualMachineId { get => this._virtualMachineId; set { {_virtualMachineId = value;} } } + + /// Backing field for property. + private string _oSVersion; + + /// The version of the OS on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string OSVersion { get => this._oSVersion; set => this._oSVersion = value; } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of SessionHost. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private string _resourceId; + + /// Resource Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; } + + /// Backing field for property. + private int? _session; + + /// Number of sessions on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? Session { get => this._session; set => this._session = value; } + + /// + /// Backing field for property. + /// + private global::System.DateTime? _sessionHostConfigurationLastUpdateTime; + + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? SessionHostConfigurationLastUpdateTime { get => this._sessionHostConfigurationLastUpdateTime; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] _sessionHostHealthCheckResult; + + /// List of SessionHostHealthCheckReports + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] SessionHostHealthCheckResult { get => this._sessionHostHealthCheckResult; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? _status; + + /// Status for a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get => this._status; set => this._status = value; } + + /// Backing field for property. + private global::System.DateTime? _statusTimestamp; + + /// The timestamp of the status. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? StatusTimestamp { get => this._statusTimestamp; } + + /// Backing field for property. + private string _sxSStackVersion; + + /// The version of the side by side stack on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SxSStackVersion { get => this._sxSStackVersion; set => this._sxSStackVersion = value; } + + /// Backing field for property. + private string _updateErrorMessage; + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string UpdateErrorMessage { get => this._updateErrorMessage; set => this._updateErrorMessage = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? _updateState; + + /// Update state of a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get => this._updateState; set => this._updateState = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? _updateStatus; + + /// Updating state of the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get => this._updateStatus; } + + /// Backing field for property. + private string _virtualMachineId; + + /// Virtual Machine Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string VirtualMachineId { get => this._virtualMachineId; } + + /// Creates an new instance. + public SessionHostProperties() + { + + } + } + /// Schema for SessionHost properties. + public partial interface ISessionHostProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Version of agent on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of agent on SessionHost.", + SerializedName = @"agentVersion", + PossibleTypes = new [] { typeof(string) })] + string AgentVersion { get; set; } + /// Allow a new session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + string AssignedUser { get; set; } + /// The resourceId of the image of session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The resourceId of the image of session host.", + SerializedName = @"imageResourceId", + PossibleTypes = new [] { typeof(string) })] + string ImageResourceId { get; } + /// The type of image session hosts use in the hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of image session hosts use in the hostpool.", + SerializedName = @"imageType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get; } + /// Last heart beat from SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Last heart beat from SessionHost.", + SerializedName = @"lastHeartBeat", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastHeartBeat { get; set; } + /// The last time update was completed. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The last time update was completed.", + SerializedName = @"lastSessionHostUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastSessionHostUpdateTime { get; } + /// The timestamp of the last update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the last update.", + SerializedName = @"lastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastUpdateTime { get; } + /// The version of the OS on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the OS on the session host.", + SerializedName = @"osVersion", + PossibleTypes = new [] { typeof(string) })] + string OSVersion { get; set; } + /// ObjectId of SessionHost. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of SessionHost. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// Resource Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Resource Id of SessionHost's underlying virtual machine.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; } + /// Number of sessions on SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of sessions on SessionHost.", + SerializedName = @"sessions", + PossibleTypes = new [] { typeof(int) })] + int? Session { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"This time will match the time in the SHC for when the update was initiated.", + SerializedName = @"sessionHostConfigurationLastUpdateTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; } + /// List of SessionHostHealthCheckReports + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of SessionHostHealthCheckReports", + SerializedName = @"sessionHostHealthCheckResults", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] SessionHostHealthCheckResult { get; } + /// Status for a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status for a SessionHost.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get; set; } + /// The timestamp of the status. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The timestamp of the status.", + SerializedName = @"statusTimestamp", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? StatusTimestamp { get; } + /// The version of the side by side stack on the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the side by side stack on the session host.", + SerializedName = @"sxSStackVersion", + PossibleTypes = new [] { typeof(string) })] + string SxSStackVersion { get; set; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The error message.", + SerializedName = @"updateErrorMessage", + PossibleTypes = new [] { typeof(string) })] + string UpdateErrorMessage { get; set; } + /// Update state of a SessionHost. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Update state of a SessionHost.", + SerializedName = @"updateState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get; set; } + /// Updating state of the session host. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Updating state of the session host.", + SerializedName = @"updateStatus", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get; } + /// Virtual Machine Id of SessionHost's underlying virtual machine. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Virtual Machine Id of SessionHost's underlying virtual machine.", + SerializedName = @"virtualMachineId", + PossibleTypes = new [] { typeof(string) })] + string VirtualMachineId { get; } + + } + /// Schema for SessionHost properties. + internal partial interface ISessionHostPropertiesInternal + + { + /// Version of agent on SessionHost. + string AgentVersion { get; set; } + /// Allow a new session. + bool? AllowNewSession { get; set; } + /// User assigned to SessionHost. + string AssignedUser { get; set; } + /// The resourceId of the image of session host. + string ImageResourceId { get; set; } + /// The type of image session hosts use in the hostpool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType? ImageType { get; set; } + /// Last heart beat from SessionHost. + global::System.DateTime? LastHeartBeat { get; set; } + /// The last time update was completed. + global::System.DateTime? LastSessionHostUpdateTime { get; set; } + /// The timestamp of the last update. + global::System.DateTime? LastUpdateTime { get; set; } + /// The version of the OS on the session host. + string OSVersion { get; set; } + /// ObjectId of SessionHost. (internal use) + string ObjectId { get; set; } + /// Resource Id of SessionHost's underlying virtual machine. + string ResourceId { get; set; } + /// Number of sessions on SessionHost. + int? Session { get; set; } + /// This time will match the time in the SHC for when the update was initiated. + global::System.DateTime? SessionHostConfigurationLastUpdateTime { get; set; } + /// List of SessionHostHealthCheckReports + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport[] SessionHostHealthCheckResult { get; set; } + /// Status for a SessionHost. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status? Status { get; set; } + /// The timestamp of the status. + global::System.DateTime? StatusTimestamp { get; set; } + /// The version of the side by side stack on the session host. + string SxSStackVersion { get; set; } + /// The error message. + string UpdateErrorMessage { get; set; } + /// Update state of a SessionHost. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState? UpdateState { get; set; } + /// Updating state of the session host. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus? UpdateStatus { get; set; } + /// Virtual Machine Id of SessionHost's underlying virtual machine. + string VirtualMachineId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.json.cs new file mode 100644 index 000000000000..de801e20f873 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/SessionHostProperties.json.cs @@ -0,0 +1,182 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for SessionHost properties. + public partial class SessionHostProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new SessionHostProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal SessionHostProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_lastHeartBeat = If( json?.PropertyT("lastHeartBeat"), out var __jsonLastHeartBeat) ? global::System.DateTime.TryParse((string)__jsonLastHeartBeat, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastHeartBeatValue) ? __jsonLastHeartBeatValue : LastHeartBeat : LastHeartBeat;} + {_session = If( json?.PropertyT("sessions"), out var __jsonSessions) ? (int?)__jsonSessions : Session;} + {_agentVersion = If( json?.PropertyT("agentVersion"), out var __jsonAgentVersion) ? (string)__jsonAgentVersion : (string)AgentVersion;} + {_allowNewSession = If( json?.PropertyT("allowNewSession"), out var __jsonAllowNewSession) ? (bool?)__jsonAllowNewSession : AllowNewSession;} + {_virtualMachineId = If( json?.PropertyT("virtualMachineId"), out var __jsonVirtualMachineId) ? (string)__jsonVirtualMachineId : (string)VirtualMachineId;} + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_assignedUser = If( json?.PropertyT("assignedUser"), out var __jsonAssignedUser) ? (string)__jsonAssignedUser : (string)AssignedUser;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_statusTimestamp = If( json?.PropertyT("statusTimestamp"), out var __jsonStatusTimestamp) ? global::System.DateTime.TryParse((string)__jsonStatusTimestamp, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonStatusTimestampValue) ? __jsonStatusTimestampValue : StatusTimestamp : StatusTimestamp;} + {_oSVersion = If( json?.PropertyT("osVersion"), out var __jsonOSVersion) ? (string)__jsonOSVersion : (string)OSVersion;} + {_sxSStackVersion = If( json?.PropertyT("sxSStackVersion"), out var __jsonSxSStackVersion) ? (string)__jsonSxSStackVersion : (string)SxSStackVersion;} + {_updateState = If( json?.PropertyT("updateState"), out var __jsonUpdateState) ? (string)__jsonUpdateState : (string)UpdateState;} + {_lastUpdateTime = If( json?.PropertyT("lastUpdateTime"), out var __jsonLastUpdateTime) ? global::System.DateTime.TryParse((string)__jsonLastUpdateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastUpdateTimeValue) ? __jsonLastUpdateTimeValue : LastUpdateTime : LastUpdateTime;} + {_updateErrorMessage = If( json?.PropertyT("updateErrorMessage"), out var __jsonUpdateErrorMessage) ? (string)__jsonUpdateErrorMessage : (string)UpdateErrorMessage;} + {_sessionHostHealthCheckResult = If( json?.PropertyT("sessionHostHealthCheckResults"), out var __jsonSessionHostHealthCheckResults) ? If( __jsonSessionHostHealthCheckResults as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostHealthCheckReport) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostHealthCheckReport.FromJson(__u) )) ))() : null : SessionHostHealthCheckResult;} + {_lastSessionHostUpdateTime = If( json?.PropertyT("lastSessionHostUpdateTime"), out var __jsonLastSessionHostUpdateTime) ? global::System.DateTime.TryParse((string)__jsonLastSessionHostUpdateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastSessionHostUpdateTimeValue) ? __jsonLastSessionHostUpdateTimeValue : LastSessionHostUpdateTime : LastSessionHostUpdateTime;} + {_sessionHostConfigurationLastUpdateTime = If( json?.PropertyT("sessionHostConfigurationLastUpdateTime"), out var __jsonSessionHostConfigurationLastUpdateTime) ? global::System.DateTime.TryParse((string)__jsonSessionHostConfigurationLastUpdateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonSessionHostConfigurationLastUpdateTimeValue) ? __jsonSessionHostConfigurationLastUpdateTimeValue : SessionHostConfigurationLastUpdateTime : SessionHostConfigurationLastUpdateTime;} + {_imageResourceId = If( json?.PropertyT("imageResourceId"), out var __jsonImageResourceId) ? (string)__jsonImageResourceId : (string)ImageResourceId;} + {_imageType = If( json?.PropertyT("imageType"), out var __jsonImageType) ? (string)__jsonImageType : (string)ImageType;} + {_updateStatus = If( json?.PropertyT("updateStatus"), out var __jsonUpdateStatus) ? (string)__jsonUpdateStatus : (string)UpdateStatus;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != this._lastHeartBeat ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastHeartBeat?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastHeartBeat" ,container.Add ); + AddIf( null != this._session ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._session) : null, "sessions" ,container.Add ); + AddIf( null != (((object)this._agentVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._agentVersion.ToString()) : null, "agentVersion" ,container.Add ); + AddIf( null != this._allowNewSession ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._allowNewSession) : null, "allowNewSession" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._virtualMachineId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._virtualMachineId.ToString()) : null, "virtualMachineId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + } + AddIf( null != (((object)this._assignedUser)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._assignedUser.ToString()) : null, "assignedUser" ,container.Add ); + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._statusTimestamp ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._statusTimestamp?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "statusTimestamp" ,container.Add ); + } + AddIf( null != (((object)this._oSVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._oSVersion.ToString()) : null, "osVersion" ,container.Add ); + AddIf( null != (((object)this._sxSStackVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sxSStackVersion.ToString()) : null, "sxSStackVersion" ,container.Add ); + AddIf( null != (((object)this._updateState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._updateState.ToString()) : null, "updateState" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._lastUpdateTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastUpdateTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastUpdateTime" ,container.Add ); + } + AddIf( null != (((object)this._updateErrorMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._updateErrorMessage.ToString()) : null, "updateErrorMessage" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._sessionHostHealthCheckResult) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._sessionHostHealthCheckResult ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("sessionHostHealthCheckResults",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._lastSessionHostUpdateTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._lastSessionHostUpdateTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastSessionHostUpdateTime" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._sessionHostConfigurationLastUpdateTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sessionHostConfigurationLastUpdateTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "sessionHostConfigurationLastUpdateTime" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._imageResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._imageResourceId.ToString()) : null, "imageResourceId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._imageType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._imageType.ToString()) : null, "imageType" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._updateStatus)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._updateStatus.ToString()) : null, "updateStatus" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.PowerShell.cs new file mode 100644 index 000000000000..f8f8bf0f8846 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.PowerShell.cs @@ -0,0 +1,149 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a StartMenuItem definition. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemTypeConverter))] + public partial class StartMenuItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StartMenuItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StartMenuItem(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StartMenuItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).AppAlias = (string) content.GetValueForProperty("AppAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).AppAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconIndex, (__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 StartMenuItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).AppAlias = (string) content.GetValueForProperty("AppAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).AppAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents a StartMenuItem definition. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemTypeConverter))] + public partial interface IStartMenuItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.TypeConverter.cs new file mode 100644 index 000000000000..f2a66a53b534 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StartMenuItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StartMenuItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StartMenuItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StartMenuItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.cs new file mode 100644 index 000000000000..ff0e817cd6ca --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.cs @@ -0,0 +1,155 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a StartMenuItem definition. + public partial class StartMenuItem : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// Alias of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string AppAlias { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).AppAlias; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).AppAlias = value ?? null; } + + /// Command line arguments for StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CommandLineArgument { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).CommandLineArgument; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).CommandLineArgument = value ?? null; } + + /// Path to the file of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FilePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).FilePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).FilePath = value ?? null; } + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? IconIndex { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).IconIndex; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).IconIndex = value ?? default(int); } + + /// Path to the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string IconPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).IconPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)Property).IconPath = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemProperties()); set { {_property = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties _property; + + /// Detailed properties for StartMenuItem + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemProperties()); set => this._property = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public StartMenuItem() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Represents a StartMenuItem definition. + public partial interface IStartMenuItem : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// Alias of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alias of StartMenuItem.", + SerializedName = @"appAlias", + PossibleTypes = new [] { typeof(string) })] + string AppAlias { get; set; } + /// Command line arguments for StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command line arguments for StartMenuItem.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// Path to the file of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to the file of StartMenuItem.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to the icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + + } + /// Represents a StartMenuItem definition. + internal partial interface IStartMenuItemInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// Alias of StartMenuItem. + string AppAlias { get; set; } + /// Command line arguments for StartMenuItem. + string CommandLineArgument { get; set; } + /// Path to the file of StartMenuItem. + string FilePath { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to the icon. + string IconPath { get; set; } + /// Detailed properties for StartMenuItem + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.json.cs new file mode 100644 index 000000000000..49db8dfaecb8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItem.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a StartMenuItem definition. + public partial class StartMenuItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new StartMenuItem(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal StartMenuItem(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemProperties.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.PowerShell.cs new file mode 100644 index 000000000000..3c775fbfaeb3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of StartMenuItem definitions. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemListTypeConverter))] + public partial class StartMenuItemList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StartMenuItemList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StartMenuItemList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StartMenuItemList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)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 StartMenuItemList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItemTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal)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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of StartMenuItem definitions. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemListTypeConverter))] + public partial interface IStartMenuItemList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.TypeConverter.cs new file mode 100644 index 000000000000..ad4401bcbb0f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StartMenuItemListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StartMenuItemList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StartMenuItemList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StartMenuItemList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.cs new file mode 100644 index 000000000000..8b80ab1f935a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of StartMenuItem definitions. + public partial class StartMenuItemList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[] _value; + + /// List of StartMenuItem definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StartMenuItemList() + { + + } + } + /// List of StartMenuItem definitions. + public partial interface IStartMenuItemList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of StartMenuItem definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of StartMenuItem definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[] Value { get; set; } + + } + /// List of StartMenuItem definitions. + internal partial interface IStartMenuItemListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of StartMenuItem definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.json.cs new file mode 100644 index 000000000000..e608d52b232f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of StartMenuItem definitions. + public partial class StartMenuItemList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new StartMenuItemList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal StartMenuItemList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.StartMenuItem.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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.PowerShell.cs new file mode 100644 index 000000000000..98960ac1c9f5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.PowerShell.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for StartMenuItem properties. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemPropertiesTypeConverter))] + public partial class StartMenuItemProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StartMenuItemProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StartMenuItemProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StartMenuItemProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).AppAlias = (string) content.GetValueForProperty("AppAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).AppAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconIndex, (__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 StartMenuItemProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).AppAlias = (string) content.GetValueForProperty("AppAlias",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).AppAlias, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).FilePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).CommandLineArgument = (string) content.GetValueForProperty("CommandLineArgument",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).CommandLineArgument, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconPath = (string) content.GetValueForProperty("IconPath",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconIndex = (int?) content.GetValueForProperty("IconIndex",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal)this).IconIndex, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Schema for StartMenuItem properties. + [System.ComponentModel.TypeConverter(typeof(StartMenuItemPropertiesTypeConverter))] + public partial interface IStartMenuItemProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.TypeConverter.cs new file mode 100644 index 000000000000..d8be2204dc53 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StartMenuItemPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StartMenuItemProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StartMenuItemProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StartMenuItemProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.cs new file mode 100644 index 000000000000..15329c8b0f63 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for StartMenuItem properties. + public partial class StartMenuItemProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemPropertiesInternal + { + + /// Backing field for property. + private string _appAlias; + + /// Alias of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string AppAlias { get => this._appAlias; set => this._appAlias = value; } + + /// Backing field for property. + private string _commandLineArgument; + + /// Command line arguments for StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string CommandLineArgument { get => this._commandLineArgument; set => this._commandLineArgument = value; } + + /// Backing field for property. + private string _filePath; + + /// Path to the file of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FilePath { get => this._filePath; set => this._filePath = value; } + + /// Backing field for property. + private int? _iconIndex; + + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public int? IconIndex { get => this._iconIndex; set => this._iconIndex = value; } + + /// Backing field for property. + private string _iconPath; + + /// Path to the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string IconPath { get => this._iconPath; set => this._iconPath = value; } + + /// Creates an new instance. + public StartMenuItemProperties() + { + + } + } + /// Schema for StartMenuItem properties. + public partial interface IStartMenuItemProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Alias of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Alias of StartMenuItem.", + SerializedName = @"appAlias", + PossibleTypes = new [] { typeof(string) })] + string AppAlias { get; set; } + /// Command line arguments for StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command line arguments for StartMenuItem.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + string CommandLineArgument { get; set; } + /// Path to the file of StartMenuItem. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to the file of StartMenuItem.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + /// Index of the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + int? IconIndex { get; set; } + /// Path to the icon. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to the icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + string IconPath { get; set; } + + } + /// Schema for StartMenuItem properties. + internal partial interface IStartMenuItemPropertiesInternal + + { + /// Alias of StartMenuItem. + string AppAlias { get; set; } + /// Command line arguments for StartMenuItem. + string CommandLineArgument { get; set; } + /// Path to the file of StartMenuItem. + string FilePath { get; set; } + /// Index of the icon. + int? IconIndex { get; set; } + /// Path to the icon. + string IconPath { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.json.cs new file mode 100644 index 000000000000..e41271454918 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/StartMenuItemProperties.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for StartMenuItem properties. + public partial class StartMenuItemProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItemProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new StartMenuItemProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal StartMenuItemProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_appAlias = If( json?.PropertyT("appAlias"), out var __jsonAppAlias) ? (string)__jsonAppAlias : (string)AppAlias;} + {_filePath = If( json?.PropertyT("filePath"), out var __jsonFilePath) ? (string)__jsonFilePath : (string)FilePath;} + {_commandLineArgument = If( json?.PropertyT("commandLineArguments"), out var __jsonCommandLineArguments) ? (string)__jsonCommandLineArguments : (string)CommandLineArgument;} + {_iconPath = If( json?.PropertyT("iconPath"), out var __jsonIconPath) ? (string)__jsonIconPath : (string)IconPath;} + {_iconIndex = If( json?.PropertyT("iconIndex"), out var __jsonIconIndex) ? (int?)__jsonIconIndex : IconIndex;} + 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.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._appAlias)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._appAlias.ToString()) : null, "appAlias" ,container.Add ); + AddIf( null != (((object)this._filePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._filePath.ToString()) : null, "filePath" ,container.Add ); + AddIf( null != (((object)this._commandLineArgument)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._commandLineArgument.ToString()) : null, "commandLineArguments" ,container.Add ); + AddIf( null != (((object)this._iconPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._iconPath.ToString()) : null, "iconPath" ,container.Add ); + AddIf( null != this._iconIndex ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNumber((int)this._iconIndex) : null, "iconIndex" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.PowerShell.cs new file mode 100644 index 000000000000..4ec22abc987f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.PowerShell.cs @@ -0,0 +1,203 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a Update Status definition. + [System.ComponentModel.TypeConverter(typeof(UpdateStatusTypeConverter))] + public partial class UpdateStatus + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UpdateStatus(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UpdateStatus(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UpdateStatus(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgress = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress) content.GetValueForProperty("MigrateProgress",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgress, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgressTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("HostPoolUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).PropertiesUpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus?) content.GetValueForProperty("PropertiesUpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).PropertiesUpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolResourceId = (string) content.GetValueForProperty("HostPoolResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).CorrelationId = (string) content.GetValueForProperty("CorrelationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).CorrelationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeCreated = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeStarted = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeFailed = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeEnded = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("MigrateProgressListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressPercentage = (float?) content.GetValueForProperty("MigrateProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsToMigrate = (int?) content.GetValueForProperty("MigrateProgressSessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrating = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrated = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsRollbackFailed = (int?) content.GetValueForProperty("MigrateProgressSessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsRollbackFailed, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("HostPoolUpdateConfigurationScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk = (bool?) content.GetValueForProperty("HostPoolUpdateConfigurationSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("HostPoolUpdateConfigurationMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffMessage = (string) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTimeZone, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal UpdateStatus(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgress = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress) content.GetValueForProperty("MigrateProgress",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgress, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateProgressTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties) content.GetValueForProperty("HostPoolUpdateConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).PropertiesUpdateStatus = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus?) content.GetValueForProperty("PropertiesUpdateStatus",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).PropertiesUpdateStatus, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolResourceId = (string) content.GetValueForProperty("HostPoolResourceId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).CorrelationId = (string) content.GetValueForProperty("CorrelationId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).CorrelationId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SessionHostConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) content.GetValueForProperty("SessionHostConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).SessionHostConfiguration, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostConfigurationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeCreated = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeCreated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeCreated, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeStarted = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeStarted",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeStarted, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeFailed = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeFailed, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeEnded = (global::System.DateTime?) content.GetValueForProperty("MigrateProgressTimeEnded",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressTimeEnded, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressListOfError = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[]) content.GetValueForProperty("MigrateProgressListOfError",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressListOfError, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFaultTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressPercentage = (float?) content.GetValueForProperty("MigrateProgressPercentage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressPercentage, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsToMigrate = (int?) content.GetValueForProperty("MigrateProgressSessionHostsToMigrate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsToMigrate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrating = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrating",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrating, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrated = (int?) content.GetValueForProperty("MigrateProgressSessionHostsMigrated",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsMigrated, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsRollbackFailed = (int?) content.GetValueForProperty("MigrateProgressSessionHostsRollbackFailed",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).MigrateProgressSessionHostsRollbackFailed, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationScheduledTime = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties) content.GetValueForProperty("HostPoolUpdateConfigurationScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationScheduledTime, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScheduledTimePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk = (bool?) content.GetValueForProperty("HostPoolUpdateConfigurationSaveOriginalDisk",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationSaveOriginalDisk, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaintenanceAlert = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[]) content.GetValueForProperty("HostPoolUpdateConfigurationMaintenanceAlert",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationMaintenanceAlert, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MaintenanceAlertsPropertiesTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond = (int?) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffMessage = (string) content.GetValueForProperty("HostPoolUpdateConfigurationLogOffMessage",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).HostPoolUpdateConfigurationLogOffMessage, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTime = (global::System.DateTime?) content.GetValueForProperty("ScheduledTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTimeZone = (string) content.GetValueForProperty("ScheduledTimeZone",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal)this).ScheduledTimeZone, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + } + /// Represents a Update Status definition. + [System.ComponentModel.TypeConverter(typeof(UpdateStatusTypeConverter))] + public partial interface IUpdateStatus + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.TypeConverter.cs new file mode 100644 index 000000000000..39cc9766be4c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UpdateStatusTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UpdateStatus.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UpdateStatus.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UpdateStatus.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.cs new file mode 100644 index 000000000000..d3345a5d3144 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.cs @@ -0,0 +1,513 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a Update Status definition. + public partial class UpdateStatus : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// The correlationId of the hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string CorrelationId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).CorrelationId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).CorrelationId = value ?? null; } + + /// The resourceId of hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string HostPoolResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolResourceId = value ?? null; } + + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? HostPoolUpdateConfigurationLogOffDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationLogOffDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationLogOffDelaySecond = value ?? default(int); } + + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string HostPoolUpdateConfigurationLogOffMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationLogOffMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationLogOffMessage = value ?? null; } + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationMaintenanceAlert; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationMaintenanceAlert = value ?? null /* arrayOf */; } + + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate = value ?? default(int); } + + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? HostPoolUpdateConfigurationSaveOriginalDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationSaveOriginalDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationSaveOriginalDisk = value ?? default(bool); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for HostPoolUpdateConfiguration + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal.HostPoolUpdateConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfiguration = value; } + + /// Internal Acessors for HostPoolUpdateConfigurationScheduledTime + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal.HostPoolUpdateConfigurationScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationScheduledTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).HostPoolUpdateConfigurationScheduledTime = value; } + + /// Internal Acessors for MigrateProgress + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal.MigrateProgress { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgress; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgress = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressListOfError; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressListOfError = value ?? null /* arrayOf */; } + + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public float? MigrateProgressPercentage { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressPercentage; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressPercentage = value ?? default(float); } + + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsMigrated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsMigrated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsMigrated = value ?? default(int); } + + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsMigrating { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsMigrating; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsMigrating = value ?? default(int); } + + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsRollbackFailed { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsRollbackFailed; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsRollbackFailed = value ?? default(int); } + + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public int? MigrateProgressSessionHostsToMigrate { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsToMigrate; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressSessionHostsToMigrate = value ?? default(int); } + + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeCreated { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeCreated; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeCreated = value ?? default(global::System.DateTime); } + + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeEnded { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeEnded; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeEnded = value ?? default(global::System.DateTime); } + + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeFailed { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeFailed; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeFailed = value ?? default(global::System.DateTime); } + + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? MigrateProgressTimeStarted { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeStarted; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).MigrateProgressTimeStarted = value ?? default(global::System.DateTime); } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// State of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? PropertiesUpdateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).UpdateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).UpdateStatus = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties _property; + + /// Detailed properties for Update Status + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties()); } + + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? ScheduledTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).ScheduledTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).ScheduledTime = value ?? default(global::System.DateTime); } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ScheduledTimeZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).ScheduledTimeZone; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).ScheduledTimeZone = value ?? null; } + + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).SessionHostConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).SessionHostConfiguration = value ?? null /* model class */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// The version of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullPropertiesInternal)Property).Version = value ?? null; } + + /// Creates an new instance. + public UpdateStatus() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Represents a Update Status definition. + public partial interface IUpdateStatus : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// The correlationId of the hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The correlationId of the hostpool update.", + SerializedName = @"correlationId", + PossibleTypes = new [] { typeof(string) })] + string CorrelationId { get; set; } + /// The resourceId of hostpool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resourceId of hostpool.", + SerializedName = @"hostPoolResourceId", + PossibleTypes = new [] { typeof(string) })] + string HostPoolResourceId { get; set; } + /// Grace period before logging off users in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? HostPoolUpdateConfigurationLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + string HostPoolUpdateConfigurationLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(bool) })] + bool? HostPoolUpdateConfigurationSaveOriginalDisk { get; set; } + /// The alerts given to customers for hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"listOfErrors", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get; set; } + /// The progress percentage. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The progress percentage.", + SerializedName = @"progressPercentage", + PossibleTypes = new [] { typeof(float) })] + float? MigrateProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrated by hostpool update.", + SerializedName = @"sessionHostsMigrated", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts migrating by hostpool update.", + SerializedName = @"sessionHostsMigrating", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts that failed to rollback.", + SerializedName = @"sessionHostsRollbackFailed", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of session hosts to migrate by hostpool update.", + SerializedName = @"sessionHostsToMigrate", + PossibleTypes = new [] { typeof(int) })] + int? MigrateProgressSessionHostsToMigrate { get; set; } + /// The hostpool update create time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update create time.", + SerializedName = @"timeCreated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeCreated { get; set; } + /// The hostpool update end time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update end time.", + SerializedName = @"timeEnded", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeEnded { get; set; } + /// The hostpool update fail time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update fail time.", + SerializedName = @"timeFailed", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeFailed { get; set; } + /// The hostpool update start time. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The hostpool update start time.", + SerializedName = @"timeStarted", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? MigrateProgressTimeStarted { get; set; } + /// State of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of hostpool update.", + SerializedName = @"updateStatus", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? PropertiesUpdateStatus { get; set; } + /// The time the hostpool update is schedule for. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + string ScheduledTimeZone { get; set; } + /// The session host configurations of HostPool. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The version of hostpool update. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of hostpool update.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Represents a Update Status definition. + internal partial interface IUpdateStatusInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// The correlationId of the hostpool update. + string CorrelationId { get; set; } + /// The resourceId of hostpool. + string HostPoolResourceId { get; set; } + /// The configurations of a hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateConfigurationProperties HostPoolUpdateConfiguration { get; set; } + /// Grace period before logging off users in seconds. + int? HostPoolUpdateConfigurationLogOffDelaySecond { get; set; } + /// Log off message sent to user for logoff. + string HostPoolUpdateConfigurationLogOffMessage { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] HostPoolUpdateConfigurationMaintenanceAlert { get; set; } + /// The maximum virtual machines to be removed during hostpool update. + int? HostPoolUpdateConfigurationMaxVmsRemovedDuringUpdate { get; set; } + /// Whether to save original disk. False by default. + bool? HostPoolUpdateConfigurationSaveOriginalDisk { get; set; } + /// When set schedules the hostpool update at specific time. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScheduledTimeProperties HostPoolUpdateConfigurationScheduledTime { get; set; } + /// Properties of host pool update progress. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateProgress MigrateProgress { get; set; } + /// The alerts given to customers for hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFault[] MigrateProgressListOfError { get; set; } + /// The progress percentage. + float? MigrateProgressPercentage { get; set; } + /// The number of session hosts migrated by hostpool update. + int? MigrateProgressSessionHostsMigrated { get; set; } + /// The number of session hosts migrating by hostpool update. + int? MigrateProgressSessionHostsMigrating { get; set; } + /// The number of session hosts that failed to rollback. + int? MigrateProgressSessionHostsRollbackFailed { get; set; } + /// The number of session hosts to migrate by hostpool update. + int? MigrateProgressSessionHostsToMigrate { get; set; } + /// The hostpool update create time. + global::System.DateTime? MigrateProgressTimeCreated { get; set; } + /// The hostpool update end time. + global::System.DateTime? MigrateProgressTimeEnded { get; set; } + /// The hostpool update fail time. + global::System.DateTime? MigrateProgressTimeFailed { get; set; } + /// The hostpool update start time. + global::System.DateTime? MigrateProgressTimeStarted { get; set; } + /// State of hostpool update. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus? PropertiesUpdateStatus { get; set; } + /// Detailed properties for Update Status + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties Property { get; set; } + /// The time the hostpool update is schedule for. + global::System.DateTime? ScheduledTime { get; set; } + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyid?view=net-5.0. + /// Must be set if useLocalTime is true. + /// + string ScheduledTimeZone { get; set; } + /// The session host configurations of HostPool. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The version of hostpool update. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.json.cs new file mode 100644 index 000000000000..67d3c68c0538 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatus.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a Update Status definition. + public partial class UpdateStatus + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new UpdateStatus(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal UpdateStatus(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdateFullProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.PowerShell.cs new file mode 100644 index 000000000000..ee3b56b7fe96 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of UpdateStatus definitions. + [System.ComponentModel.TypeConverter(typeof(UpdateStatusListTypeConverter))] + public partial class UpdateStatusList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UpdateStatusList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UpdateStatusList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UpdateStatusList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatusTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)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 UpdateStatusList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatusTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal)this).NextLink, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + } + /// List of UpdateStatus definitions. + [System.ComponentModel.TypeConverter(typeof(UpdateStatusListTypeConverter))] + public partial interface IUpdateStatusList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.TypeConverter.cs new file mode 100644 index 000000000000..483bb0566a5f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UpdateStatusListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UpdateStatusList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UpdateStatusList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UpdateStatusList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.cs new file mode 100644 index 000000000000..2d5b52af33d0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of UpdateStatus definitions. + public partial class UpdateStatusList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[] _value; + + /// List of UpdateStatus definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public UpdateStatusList() + { + + } + } + /// List of UpdateStatus definitions. + public partial interface IUpdateStatusList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of UpdateStatus definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of UpdateStatus definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[] Value { get; set; } + + } + /// List of UpdateStatus definitions. + internal partial interface IUpdateStatusListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of UpdateStatus definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.json.cs new file mode 100644 index 000000000000..ddfd634ae59f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UpdateStatusList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of UpdateStatus definitions. + public partial class UpdateStatusList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatusList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new UpdateStatusList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal UpdateStatusList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UpdateStatus.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/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.PowerShell.cs new file mode 100644 index 000000000000..43b1aef37d92 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.PowerShell.cs @@ -0,0 +1,165 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a UserSession definition. + [System.ComponentModel.TypeConverter(typeof(UserSessionTypeConverter))] + public partial class UserSession + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserSession(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserSession(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserSession(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SessionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState?) content.GetValueForProperty("SessionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SessionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).UserPrincipalName = (string) content.GetValueForProperty("UserPrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).UserPrincipalName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ActiveDirectoryUserName = (string) content.GetValueForProperty("ActiveDirectoryUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ActiveDirectoryUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).CreateTime = (global::System.DateTime?) content.GetValueForProperty("CreateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).CreateTime, (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 UserSession(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SessionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState?) content.GetValueForProperty("SessionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SessionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).UserPrincipalName = (string) content.GetValueForProperty("UserPrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).UserPrincipalName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ActiveDirectoryUserName = (string) content.GetValueForProperty("ActiveDirectoryUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).ActiveDirectoryUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).CreateTime = (global::System.DateTime?) content.GetValueForProperty("CreateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal)this).CreateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + AfterDeserializePSObject(content); + } + } + /// Represents a UserSession definition. + [System.ComponentModel.TypeConverter(typeof(UserSessionTypeConverter))] + public partial interface IUserSession + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.TypeConverter.cs new file mode 100644 index 000000000000..446dd2cbf227 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserSessionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserSession.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserSession.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserSession.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.cs new file mode 100644 index 000000000000..be3d72819bfc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.cs @@ -0,0 +1,268 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a UserSession definition. + public partial class UserSession : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(); + + /// The active directory user name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ActiveDirectoryUserName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ActiveDirectoryUserName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ActiveDirectoryUserName = value ?? null; } + + /// Application type of application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ApplicationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ApplicationType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType)""); } + + /// The timestamp of the user session create. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? CreateTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).CreateTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).CreateTime = value ?? default(global::System.DateTime); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Name; } + + /// ObjectId of user session. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).ObjectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties _property; + + /// Detailed properties for UserSession + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionProperties()); set => this._property = value; } + + /// State of user session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).SessionState; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).SessionState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal)__resource).Type; } + + /// The user principal name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string UserPrincipalName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).UserPrincipalName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)Property).UserPrincipalName = value ?? null; } + + /// Creates an new instance. + public UserSession() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Represents a UserSession definition. + public partial interface IUserSession : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResource + { + /// The active directory user name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The active directory user name.", + SerializedName = @"activeDirectoryUserName", + PossibleTypes = new [] { typeof(string) })] + string ActiveDirectoryUserName { get; set; } + /// Application type of application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application type of application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get; set; } + /// The timestamp of the user session create. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of the user session create.", + SerializedName = @"createTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreateTime { get; set; } + /// ObjectId of user session. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of user session. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// State of user session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of user session.", + SerializedName = @"sessionState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The user principal name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user principal name.", + SerializedName = @"userPrincipalName", + PossibleTypes = new [] { typeof(string) })] + string UserPrincipalName { get; set; } + + } + /// Represents a UserSession definition. + internal partial interface IUserSessionInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceInternal + { + /// The active directory user name. + string ActiveDirectoryUserName { get; set; } + /// Application type of application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get; set; } + /// The timestamp of the user session create. + global::System.DateTime? CreateTime { get; set; } + /// ObjectId of user session. (internal use) + string ObjectId { get; set; } + /// Detailed properties for UserSession + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties Property { get; set; } + /// State of user session. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The user principal name. + string UserPrincipalName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.json.cs new file mode 100644 index 000000000000..4ff5cffdec56 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSession.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a UserSession definition. + public partial class UserSession + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new UserSession(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal UserSession(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.Resource(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.PowerShell.cs new file mode 100644 index 000000000000..28a05a291fc2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of UserSession definitions. + [System.ComponentModel.TypeConverter(typeof(UserSessionListTypeConverter))] + public partial class UserSessionList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserSessionList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserSessionList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserSessionList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)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 UserSessionList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSessionTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal)this).NextLink, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + } + /// List of UserSession definitions. + [System.ComponentModel.TypeConverter(typeof(UserSessionListTypeConverter))] + public partial interface IUserSessionList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.TypeConverter.cs new file mode 100644 index 000000000000..813691b0c337 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserSessionListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserSessionList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserSessionList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserSessionList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.cs new file mode 100644 index 000000000000..0405ed7a4f31 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of UserSession definitions. + public partial class UserSessionList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[] _value; + + /// List of UserSession definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public UserSessionList() + { + + } + } + /// List of UserSession definitions. + public partial interface IUserSessionList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of UserSession definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of UserSession definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[] Value { get; set; } + + } + /// List of UserSession definitions. + internal partial interface IUserSessionListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of UserSession definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.json.cs new file mode 100644 index 000000000000..c04929bd692a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of UserSession definitions. + public partial class UserSessionList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new UserSessionList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal UserSessionList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.UserSession.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/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.PowerShell.cs new file mode 100644 index 000000000000..c7e6b48aff10 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for UserSession properties. + [System.ComponentModel.TypeConverter(typeof(UserSessionPropertiesTypeConverter))] + public partial class UserSessionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserSessionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserSessionProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserSessionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).UserPrincipalName = (string) content.GetValueForProperty("UserPrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).UserPrincipalName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).SessionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState?) content.GetValueForProperty("SessionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).SessionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ActiveDirectoryUserName = (string) content.GetValueForProperty("ActiveDirectoryUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ActiveDirectoryUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).CreateTime = (global::System.DateTime?) content.GetValueForProperty("CreateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).CreateTime, (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 UserSessionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).UserPrincipalName = (string) content.GetValueForProperty("UserPrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).UserPrincipalName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ApplicationType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType?) content.GetValueForProperty("ApplicationType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ApplicationType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).SessionState = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState?) content.GetValueForProperty("SessionState",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).SessionState, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ActiveDirectoryUserName = (string) content.GetValueForProperty("ActiveDirectoryUserName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).ActiveDirectoryUserName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).CreateTime = (global::System.DateTime?) content.GetValueForProperty("CreateTime",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal)this).CreateTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + AfterDeserializePSObject(content); + } + } + /// Schema for UserSession properties. + [System.ComponentModel.TypeConverter(typeof(UserSessionPropertiesTypeConverter))] + public partial interface IUserSessionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.TypeConverter.cs new file mode 100644 index 000000000000..fdcf503576aa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserSessionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserSessionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserSessionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserSessionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.cs new file mode 100644 index 000000000000..5d6ebaeb25ad --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.cs @@ -0,0 +1,134 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for UserSession properties. + public partial class UserSessionProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal + { + + /// Backing field for property. + private string _activeDirectoryUserName; + + /// The active directory user name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ActiveDirectoryUserName { get => this._activeDirectoryUserName; set => this._activeDirectoryUserName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? _applicationType; + + /// Application type of application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get => this._applicationType; set => this._applicationType = value; } + + /// Backing field for property. + private global::System.DateTime? _createTime; + + /// The timestamp of the user session create. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public global::System.DateTime? CreateTime { get => this._createTime; set => this._createTime = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionPropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of user session. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? _sessionState; + + /// State of user session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get => this._sessionState; set => this._sessionState = value; } + + /// Backing field for property. + private string _userPrincipalName; + + /// The user principal name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string UserPrincipalName { get => this._userPrincipalName; set => this._userPrincipalName = value; } + + /// Creates an new instance. + public UserSessionProperties() + { + + } + } + /// Schema for UserSession properties. + public partial interface IUserSessionProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The active directory user name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The active directory user name.", + SerializedName = @"activeDirectoryUserName", + PossibleTypes = new [] { typeof(string) })] + string ActiveDirectoryUserName { get; set; } + /// Application type of application. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application type of application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get; set; } + /// The timestamp of the user session create. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of the user session create.", + SerializedName = @"createTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreateTime { get; set; } + /// ObjectId of user session. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of user session. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// State of user session. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of user session.", + SerializedName = @"sessionState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get; set; } + /// The user principal name. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user principal name.", + SerializedName = @"userPrincipalName", + PossibleTypes = new [] { typeof(string) })] + string UserPrincipalName { get; set; } + + } + /// Schema for UserSession properties. + internal partial interface IUserSessionPropertiesInternal + + { + /// The active directory user name. + string ActiveDirectoryUserName { get; set; } + /// Application type of application. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType? ApplicationType { get; set; } + /// The timestamp of the user session create. + global::System.DateTime? CreateTime { get; set; } + /// ObjectId of user session. (internal use) + string ObjectId { get; set; } + /// State of user session. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState? SessionState { get; set; } + /// The user principal name. + string UserPrincipalName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.json.cs new file mode 100644 index 000000000000..e2c8ae7b5c73 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/UserSessionProperties.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for UserSession properties. + public partial class UserSessionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSessionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new UserSessionProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._userPrincipalName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._userPrincipalName.ToString()) : null, "userPrincipalName" ,container.Add ); + AddIf( null != (((object)this._applicationType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationType.ToString()) : null, "applicationType" ,container.Add ); + AddIf( null != (((object)this._sessionState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sessionState.ToString()) : null, "sessionState" ,container.Add ); + AddIf( null != (((object)this._activeDirectoryUserName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._activeDirectoryUserName.ToString()) : null, "activeDirectoryUserName" ,container.Add ); + AddIf( null != this._createTime ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._createTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createTime" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal UserSessionProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_userPrincipalName = If( json?.PropertyT("userPrincipalName"), out var __jsonUserPrincipalName) ? (string)__jsonUserPrincipalName : (string)UserPrincipalName;} + {_applicationType = If( json?.PropertyT("applicationType"), out var __jsonApplicationType) ? (string)__jsonApplicationType : (string)ApplicationType;} + {_sessionState = If( json?.PropertyT("sessionState"), out var __jsonSessionState) ? (string)__jsonSessionState : (string)SessionState;} + {_activeDirectoryUserName = If( json?.PropertyT("activeDirectoryUserName"), out var __jsonActiveDirectoryUserName) ? (string)__jsonActiveDirectoryUserName : (string)ActiveDirectoryUserName;} + {_createTime = If( json?.PropertyT("createTime"), out var __jsonCreateTime) ? global::System.DateTime.TryParse((string)__jsonCreateTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonCreateTimeValue) ? __jsonCreateTimeValue : CreateTime : CreateTime;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.PowerShell.cs new file mode 100644 index 000000000000..a442b8134588 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.PowerShell.cs @@ -0,0 +1,207 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Represents a Workspace definition. + [System.ComponentModel.TypeConverter(typeof(WorkspaceTypeConverter))] + public partial class Workspace + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Workspace(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Workspace(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Workspace(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Workspace(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemDataTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier?) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize = (string) content.GetValueForProperty("SkuSize",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuSize, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily = (string) content.GetValueForProperty("SkuFamily",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuFamily, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName = (string) content.GetValueForProperty("PlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher = (string) content.GetValueForProperty("PlanPublisher",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPublisher, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct = (string) content.GetValueForProperty("PlanProduct",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanProduct, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode = (string) content.GetValueForProperty("PlanPromotionCode",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanPromotionCode, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion = (string) content.GetValueForProperty("PlanVersion",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).PlanVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IdentityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Plan, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.PlanTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy = (string) content.GetValueForProperty("ManagedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).ManagedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind = (string) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Kind, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Etag, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySetTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializePSObject(content); + } + } + /// Represents a Workspace definition. + [System.ComponentModel.TypeConverter(typeof(WorkspaceTypeConverter))] + public partial interface IWorkspace + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.TypeConverter.cs new file mode 100644 index 000000000000..ca803f0188f4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspaceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Workspace.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Workspace.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Workspace.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.cs new file mode 100644 index 000000000000..0f17f721e90c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.cs @@ -0,0 +1,400 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a Workspace definition. + public partial class Workspace : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(); + + /// List of applicationGroup resource Ids. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] ApplicationGroupReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).ApplicationGroupReference; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).ApplicationGroupReference = value ?? null /* arrayOf */; } + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public bool? CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).CloudPcResource; } + + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).Description = value ?? null; } + + /// + /// The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the + /// normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 + /// uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section + /// 14.27) header fields. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; } + + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).FriendlyName = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; } + + /// Identity for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IIdentity Identity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Identity = value ?? null /* model class */; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; } + + /// The identity type. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Kind = value ?? null; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Location = value ?? null; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string ManagedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).ManagedBy = value ?? null; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Etag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Etag = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Id = value; } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityPrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).IdentityTenantId = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type = value; } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal.CloudPcResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).CloudPcResource; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).CloudPcResource = value; } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal.ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).ObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).ObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Name; } + + /// ObjectId of Workspace. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string ObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).ObjectId; } + + /// Plan for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IPlan Plan { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Plan = value ?? null /* model class */; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanName = value ?? null; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanProduct = value ?? null; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPromotionCode { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPromotionCode = value ?? null; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanPublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanPublisher = value ?? null; } + + /// The version of the desired product/artifact. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string PlanVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).PlanVersion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties _property; + + /// Detailed properties for Workspace + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceProperties()); set => this._property = value; } + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); } + + /// The resource model definition representing SKU + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ISku Sku { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Sku = value ?? null /* model class */; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuCapacity = value ?? default(int); } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuFamily { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuFamily = value ?? null; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuName = value ?? null; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string SkuSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuSize = value ?? null; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).SkuTier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Tag = value ?? null /* model class */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal)__resourceModelWithAllowedPropertySet).Type; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + await eventListener.AssertObjectIsValid(nameof(__resourceModelWithAllowedPropertySet), __resourceModelWithAllowedPropertySet); + } + + /// Creates an new instance. + public Workspace() + { + + } + } + /// Represents a Workspace definition. + public partial interface IWorkspace : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySet + { + /// List of applicationGroup resource Ids. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup resource Ids.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// ObjectId of Workspace. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Workspace. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Represents a Workspace definition. + internal partial interface IWorkspaceInternal : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetInternal + { + /// List of applicationGroup resource Ids. + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Description of Workspace. + string Description { get; set; } + /// Friendly name of Workspace. + string FriendlyName { get; set; } + /// ObjectId of Workspace. (internal use) + string ObjectId { get; set; } + /// Detailed properties for Workspace + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties Property { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.json.cs new file mode 100644 index 000000000000..f136a510f918 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/Workspace.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Represents a Workspace definition. + public partial class Workspace + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new Workspace(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resourceModelWithAllowedPropertySet?.ToJson(container, serializationMode); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal Workspace(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resourceModelWithAllowedPropertySet = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.ResourceModelWithAllowedPropertySet(json); + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.PowerShell.cs new file mode 100644 index 000000000000..6d60a2a47efa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// List of Workspace definitions. + [System.ComponentModel.TypeConverter(typeof(WorkspaceListTypeConverter))] + public partial class WorkspaceList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkspaceList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkspaceList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkspaceList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)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 WorkspaceList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspaceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal)this).NextLink, global::System.Convert.ToString); + AfterDeserializePSObject(content); + } + } + /// List of Workspace definitions. + [System.ComponentModel.TypeConverter(typeof(WorkspaceListTypeConverter))] + public partial interface IWorkspaceList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.TypeConverter.cs new file mode 100644 index 000000000000..ca74c34aaecf --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspaceListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkspaceList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkspaceList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkspaceList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.cs new file mode 100644 index 000000000000..fe9b63687808 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.cs @@ -0,0 +1,66 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Workspace definitions. + public partial class WorkspaceList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceListInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[] _value; + + /// List of Workspace definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public WorkspaceList() + { + + } + } + /// List of Workspace definitions. + public partial interface IWorkspaceList : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// Link to the next page of results. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to the next page of results.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// List of Workspace definitions. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Workspace definitions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[] Value { get; set; } + + } + /// List of Workspace definitions. + internal partial interface IWorkspaceListInternal + + { + /// Link to the next page of results. + string NextLink { get; set; } + /// List of Workspace definitions. + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.json.cs new file mode 100644 index 000000000000..7da348541b7d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceList.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List of Workspace definitions. + public partial class WorkspaceList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new WorkspaceList(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkspaceList(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace) (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace.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/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.PowerShell.cs new file mode 100644 index 000000000000..2c81333d5973 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Workspace properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchTypeConverter))] + public partial class WorkspacePatch + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkspacePatch(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkspacePatch(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkspacePatch(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WorkspacePatch(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializePSObject(content); + } + } + /// Workspace properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchTypeConverter))] + public partial interface IWorkspacePatch + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.TypeConverter.cs new file mode 100644 index 000000000000..bcf504391de6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspacePatchTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkspacePatch.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkspacePatch.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkspacePatch.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.cs new file mode 100644 index 000000000000..f296a5bbb2fc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Workspace properties that can be patched. + public partial class WorkspacePatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal + { + + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string[] ApplicationGroupReference { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).ApplicationGroupReference; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).ApplicationGroupReference = value ?? null /* arrayOf */; } + + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).Description = value ?? null; } + + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public string FriendlyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).FriendlyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).FriendlyName = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties _property; + + /// Detailed properties for Workspace + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchProperties()); set => this._property = value; } + + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags _tag; + + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTags()); set => this._tag = value; } + + /// Creates an new instance. + public WorkspacePatch() + { + + } + } + /// Workspace properties that can be patched. + public partial interface IWorkspacePatch : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; set; } + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// tags to be updated + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags Tag { get; set; } + + } + /// Workspace properties that can be patched. + internal partial interface IWorkspacePatchInternal + + { + /// List of applicationGroup links. + string[] ApplicationGroupReference { get; set; } + /// Description of Workspace. + string Description { get; set; } + /// Friendly name of Workspace. + string FriendlyName { get; set; } + /// Detailed properties for Workspace + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties Property { get; set; } + /// Enabled to allow this resource to be access from the public network + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// tags to be updated + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.json.cs new file mode 100644 index 000000000000..52d8ac407abb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatch.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Workspace properties that can be patched. + public partial class WorkspacePatch + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new WorkspacePatch(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkspacePatch(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.PowerShell.cs new file mode 100644 index 000000000000..000bf02fcfef --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Workspace properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchPropertiesTypeConverter))] + public partial class WorkspacePatchProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkspacePatchProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkspacePatchProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkspacePatchProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WorkspacePatchProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializePSObject(content); + } + } + /// Workspace properties that can be patched. + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchPropertiesTypeConverter))] + public partial interface IWorkspacePatchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.TypeConverter.cs new file mode 100644 index 000000000000..b199b37e4e7b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspacePatchPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkspacePatchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkspacePatchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkspacePatchProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.cs new file mode 100644 index 000000000000..6e93f2e88b12 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Workspace properties that can be patched. + public partial class WorkspacePatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchPropertiesInternal + { + + /// Backing field for property. + private string[] _applicationGroupReference; + + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] ApplicationGroupReference { get => this._applicationGroupReference; set => this._applicationGroupReference = value; } + + /// Backing field for property. + private string _description; + + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public WorkspacePatchProperties() + { + + } + } + /// Workspace properties that can be patched. + public partial interface IWorkspacePatchProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// List of applicationGroup links. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; set; } + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// Enabled to allow this resource to be access from the public network + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Workspace properties that can be patched. + internal partial interface IWorkspacePatchPropertiesInternal + + { + /// List of applicationGroup links. + string[] ApplicationGroupReference { get; set; } + /// Description of Workspace. + string Description { get; set; } + /// Friendly name of Workspace. + string FriendlyName { get; set; } + /// Enabled to allow this resource to be access from the public network + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.json.cs new file mode 100644 index 000000000000..047cfc9de9ac --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchProperties.json.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Workspace properties that can be patched. + public partial class WorkspacePatchProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new WorkspacePatchProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + if (null != this._applicationGroupReference) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._applicationGroupReference ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("applicationGroupReferences",__w); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkspacePatchProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_applicationGroupReference = If( json?.PropertyT("applicationGroupReferences"), out var __jsonApplicationGroupReferences) ? If( __jsonApplicationGroupReferences as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : ApplicationGroupReference;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.PowerShell.cs new file mode 100644 index 000000000000..360590f7f283 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchTagsTypeConverter))] + public partial class WorkspacePatchTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkspacePatchTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkspacePatchTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkspacePatchTags(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 WorkspacePatchTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + } + /// tags to be updated + [System.ComponentModel.TypeConverter(typeof(WorkspacePatchTagsTypeConverter))] + public partial interface IWorkspacePatchTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.TypeConverter.cs new file mode 100644 index 000000000000..b74fd079f8d3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspacePatchTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkspacePatchTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkspacePatchTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkspacePatchTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.cs new file mode 100644 index 000000000000..2c875608b4d9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class WorkspacePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTagsInternal + { + + /// Creates an new instance. + public WorkspacePatchTags() + { + + } + } + /// tags to be updated + public partial interface IWorkspacePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + + } + /// tags to be updated + internal partial interface IWorkspacePatchTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.dictionary.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.dictionary.cs new file mode 100644 index 000000000000..bb3cf04de3aa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class WorkspacePatchTags : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatchTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.json.cs new file mode 100644 index 000000000000..882b0518ad6b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspacePatchTags.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// tags to be updated + public partial class WorkspacePatchTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new WorkspacePatchTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + /// + internal WorkspacePatchTags(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.PowerShell.cs new file mode 100644 index 000000000000..f6a7297a696e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// Schema for Workspace properties. + [System.ComponentModel.TypeConverter(typeof(WorkspacePropertiesTypeConverter))] + public partial class WorkspaceProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WorkspaceProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WorkspaceProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WorkspaceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WorkspaceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ObjectId = (string) content.GetValueForProperty("ObjectId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ObjectId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).Description, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).FriendlyName = (string) content.GetValueForProperty("FriendlyName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).FriendlyName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ApplicationGroupReference = (string[]) content.GetValueForProperty("ApplicationGroupReference",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).ApplicationGroupReference, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).CloudPcResource = (bool?) content.GetValueForProperty("CloudPcResource",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).CloudPcResource, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess.CreateFrom); + AfterDeserializePSObject(content); + } + } + /// Schema for Workspace properties. + [System.ComponentModel.TypeConverter(typeof(WorkspacePropertiesTypeConverter))] + public partial interface IWorkspaceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.TypeConverter.cs new file mode 100644 index 000000000000..fdc0ef94701a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WorkspacePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WorkspaceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WorkspaceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WorkspaceProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.cs new file mode 100644 index 000000000000..28f25bf7d940 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.cs @@ -0,0 +1,146 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Workspace properties. + public partial class WorkspaceProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal + { + + /// Backing field for property. + private string[] _applicationGroupReference; + + /// List of applicationGroup resource Ids. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string[] ApplicationGroupReference { get => this._applicationGroupReference; set => this._applicationGroupReference = value; } + + /// Backing field for property. + private bool? _cloudPcResource; + + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public bool? CloudPcResource { get => this._cloudPcResource; } + + /// Backing field for property. + private string _description; + + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _friendlyName; + + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string FriendlyName { get => this._friendlyName; set => this._friendlyName = value; } + + /// Internal Acessors for CloudPcResource + bool? Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal.CloudPcResource { get => this._cloudPcResource; set { {_cloudPcResource = value;} } } + + /// Internal Acessors for ObjectId + string Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePropertiesInternal.ObjectId { get => this._objectId; set { {_objectId = value;} } } + + /// Backing field for property. + private string _objectId; + + /// ObjectId of Workspace. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ObjectId { get => this._objectId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public WorkspaceProperties() + { + + } + } + /// Schema for Workspace properties. + public partial interface IWorkspaceProperties : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// List of applicationGroup resource Ids. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup resource Ids.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Is cloud pc resource.", + SerializedName = @"cloudPcResource", + PossibleTypes = new [] { typeof(bool) })] + bool? CloudPcResource { get; } + /// Description of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Friendly name of Workspace. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + string FriendlyName { get; set; } + /// ObjectId of Workspace. (internal use) + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ObjectId of Workspace. (internal use)", + SerializedName = @"objectId", + PossibleTypes = new [] { typeof(string) })] + string ObjectId { get; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Schema for Workspace properties. + internal partial interface IWorkspacePropertiesInternal + + { + /// List of applicationGroup resource Ids. + string[] ApplicationGroupReference { get; set; } + /// Is cloud pc resource. + bool? CloudPcResource { get; set; } + /// Description of Workspace. + string Description { get; set; } + /// Friendly name of Workspace. + string FriendlyName { get; set; } + /// ObjectId of Workspace. (internal use) + string ObjectId { get; set; } + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.json.cs new file mode 100644 index 000000000000..ec8afa13d694 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/Api20210513Preview/WorkspaceProperties.json.cs @@ -0,0 +1,125 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Schema for Workspace properties. + public partial class WorkspaceProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspaceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new WorkspaceProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._objectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._objectId.ToString()) : null, "objectId" ,container.Add ); + } + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._friendlyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._friendlyName.ToString()) : null, "friendlyName" ,container.Add ); + if (null != this._applicationGroupReference) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.XNodeArray(); + foreach( var __x in this._applicationGroupReference ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("applicationGroupReferences",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._cloudPcResource ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonBoolean((bool)this._cloudPcResource) : null, "cloudPcResource" ,container.Add ); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal WorkspaceProperties(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_objectId = If( json?.PropertyT("objectId"), out var __jsonObjectId) ? (string)__jsonObjectId : (string)ObjectId;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_friendlyName = If( json?.PropertyT("friendlyName"), out var __jsonFriendlyName) ? (string)__jsonFriendlyName : (string)FriendlyName;} + {_applicationGroupReference = If( json?.PropertyT("applicationGroupReferences"), out var __jsonApplicationGroupReferences) ? If( __jsonApplicationGroupReferences as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : ApplicationGroupReference;} + {_cloudPcResource = If( json?.PropertyT("cloudPcResource"), out var __jsonCloudPcResource) ? (bool?)__jsonCloudPcResource : CloudPcResource;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.PowerShell.cs b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.PowerShell.cs new file mode 100644 index 000000000000..4c3f4d8ac1c1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.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.DesktopVirtualizationApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(DesktopVirtualizationApiIdentityTypeConverter))] + public partial class DesktopVirtualizationApiIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DesktopVirtualizationApiIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DesktopVirtualizationApiIdentity(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DesktopVirtualizationApiIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).WorkspaceName = (string) content.GetValueForProperty("WorkspaceName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).WorkspaceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ScalingPlanName = (string) content.GetValueForProperty("ScalingPlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ScalingPlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).HostPoolName = (string) content.GetValueForProperty("HostPoolName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).HostPoolName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationGroupName = (string) content.GetValueForProperty("ApplicationGroupName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationGroupName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationName = (string) content.GetValueForProperty("ApplicationName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).DesktopName = (string) content.GetValueForProperty("DesktopName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).DesktopName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SessionHostName = (string) content.GetValueForProperty("SessionHostName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SessionHostName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).UserSessionId = (string) content.GetValueForProperty("UserSessionId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).UserSessionId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).MsixPackageFullName = (string) content.GetValueForProperty("MsixPackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).MsixPackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)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 DesktopVirtualizationApiIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).WorkspaceName = (string) content.GetValueForProperty("WorkspaceName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).WorkspaceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ScalingPlanName = (string) content.GetValueForProperty("ScalingPlanName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ScalingPlanName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).HostPoolName = (string) content.GetValueForProperty("HostPoolName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).HostPoolName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationGroupName = (string) content.GetValueForProperty("ApplicationGroupName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationGroupName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationName = (string) content.GetValueForProperty("ApplicationName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).ApplicationName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).DesktopName = (string) content.GetValueForProperty("DesktopName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).DesktopName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SessionHostName = (string) content.GetValueForProperty("SessionHostName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).SessionHostName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).UserSessionId = (string) content.GetValueForProperty("UserSessionId",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).UserSessionId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).MsixPackageFullName = (string) content.GetValueForProperty("MsixPackageFullName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).MsixPackageFullName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal)this).Id, 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.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(DesktopVirtualizationApiIdentityTypeConverter))] + public partial interface IDesktopVirtualizationApiIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.TypeConverter.cs new file mode 100644 index 000000000000..872f3328d5e0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.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.DesktopVirtualizationApi.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DesktopVirtualizationApiIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + // we allow string conversion too. + if (type == typeof(global::System.String)) + { + return true; + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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 DesktopVirtualizationApiIdentity { Id = sourceValue }; + } + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DesktopVirtualizationApiIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DesktopVirtualizationApiIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DesktopVirtualizationApiIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.cs b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.cs new file mode 100644 index 000000000000..5bfc654909bc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.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.DesktopVirtualizationApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class DesktopVirtualizationApiIdentity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentityInternal + { + + /// Backing field for property. + private string _applicationGroupName; + + /// The name of the application group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ApplicationGroupName { get => this._applicationGroupName; set => this._applicationGroupName = value; } + + /// Backing field for property. + private string _applicationName; + + /// The name of the application within the specified application group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ApplicationName { get => this._applicationName; set => this._applicationName = value; } + + /// Backing field for property. + private string _desktopName; + + /// The name of the desktop within the specified desktop group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string DesktopName { get => this._desktopName; set => this._desktopName = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = value; } + + /// Backing field for property. + private string _id; + + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _msixPackageFullName; + + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string MsixPackageFullName { get => this._msixPackageFullName; set => this._msixPackageFullName = value; } + + /// Backing field for property. + private string _privateEndpointConnectionName; + + /// The name of the private endpoint connection associated with the Azure resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string PrivateEndpointConnectionName { get => this._privateEndpointConnectionName; set => this._privateEndpointConnectionName = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group. The name is case insensitive. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _scalingPlanName; + + /// The name of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string ScalingPlanName { get => this._scalingPlanName; set => this._scalingPlanName = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// The ID of the target subscription. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _userSessionId; + + /// The name of the user session within the specified session host + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string UserSessionId { get => this._userSessionId; set => this._userSessionId = value; } + + /// Backing field for property. + private string _workspaceName; + + /// The name of the workspace + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Origin(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.PropertyOrigin.Owned)] + public string WorkspaceName { get => this._workspaceName; set => this._workspaceName = value; } + + /// Creates an new instance. + public DesktopVirtualizationApiIdentity() + { + + } + } + public partial interface IDesktopVirtualizationApiIdentity : + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IJsonSerializable + { + /// The name of the application group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + string ApplicationGroupName { get; set; } + /// The name of the application within the specified application group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the application within the specified application group", + SerializedName = @"applicationName", + PossibleTypes = new [] { typeof(string) })] + string ApplicationName { get; set; } + /// The name of the desktop within the specified desktop group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the desktop within the specified desktop group", + SerializedName = @"desktopName", + PossibleTypes = new [] { typeof(string) })] + string DesktopName { get; set; } + /// The name of the host pool within the specified resource group + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + string HostPoolName { get; set; } + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource identity path", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version specific package full name of the MSIX package within specified hostpool", + SerializedName = @"msixPackageFullName", + PossibleTypes = new [] { typeof(string) })] + string MsixPackageFullName { get; set; } + /// The name of the private endpoint connection associated with the Azure resource + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the private endpoint connection associated with the Azure resource", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointConnectionName { get; set; } + /// The name of the resource group. The name is case insensitive. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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; } + /// The name of the scaling plan. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the scaling plan.", + SerializedName = @"scalingPlanName", + PossibleTypes = new [] { typeof(string) })] + string ScalingPlanName { get; set; } + /// The name of the session host within the specified host pool + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + string SessionHostName { get; set; } + /// The ID of the target subscription. + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string SubscriptionId { get; set; } + /// The name of the user session within the specified session host + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + string UserSessionId { get; set; } + /// The name of the workspace + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + string WorkspaceName { get; set; } + + } + internal partial interface IDesktopVirtualizationApiIdentityInternal + + { + /// The name of the application group + string ApplicationGroupName { get; set; } + /// The name of the application within the specified application group + string ApplicationName { get; set; } + /// The name of the desktop within the specified desktop group + string DesktopName { get; set; } + /// The name of the host pool within the specified resource group + string HostPoolName { get; set; } + /// Resource identity path + string Id { get; set; } + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + string MsixPackageFullName { get; set; } + /// The name of the private endpoint connection associated with the Azure resource + string PrivateEndpointConnectionName { get; set; } + /// The name of the resource group. The name is case insensitive. + string ResourceGroupName { get; set; } + /// The name of the scaling plan. + string ScalingPlanName { get; set; } + /// The name of the session host within the specified host pool + string SessionHostName { get; set; } + /// The ID of the target subscription. + string SubscriptionId { get; set; } + /// The name of the user session within the specified session host + string UserSessionId { get; set; } + /// The name of the workspace + string WorkspaceName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.json.cs b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.json.cs new file mode 100644 index 000000000000..ec2b84ee8468 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Models/DesktopVirtualizationApiIdentity.json.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + public partial class DesktopVirtualizationApiIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject instance to deserialize from. + internal DesktopVirtualizationApiIdentity(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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;} + {_workspaceName = If( json?.PropertyT("workspaceName"), out var __jsonWorkspaceName) ? (string)__jsonWorkspaceName : (string)WorkspaceName;} + {_scalingPlanName = If( json?.PropertyT("scalingPlanName"), out var __jsonScalingPlanName) ? (string)__jsonScalingPlanName : (string)ScalingPlanName;} + {_hostPoolName = If( json?.PropertyT("hostPoolName"), out var __jsonHostPoolName) ? (string)__jsonHostPoolName : (string)HostPoolName;} + {_applicationGroupName = If( json?.PropertyT("applicationGroupName"), out var __jsonApplicationGroupName) ? (string)__jsonApplicationGroupName : (string)ApplicationGroupName;} + {_applicationName = If( json?.PropertyT("applicationName"), out var __jsonApplicationName) ? (string)__jsonApplicationName : (string)ApplicationName;} + {_desktopName = If( json?.PropertyT("desktopName"), out var __jsonDesktopName) ? (string)__jsonDesktopName : (string)DesktopName;} + {_sessionHostName = If( json?.PropertyT("sessionHostName"), out var __jsonSessionHostName) ? (string)__jsonSessionHostName : (string)SessionHostName;} + {_userSessionId = If( json?.PropertyT("userSessionId"), out var __jsonUserSessionId) ? (string)__jsonUserSessionId : (string)UserSessionId;} + {_msixPackageFullName = If( json?.PropertyT("msixPackageFullName"), out var __jsonMsixPackageFullName) ? (string)__jsonMsixPackageFullName : (string)MsixPackageFullName;} + {_privateEndpointConnectionName = If( json?.PropertyT("privateEndpointConnectionName"), out var __jsonPrivateEndpointConnectionName) ? (string)__jsonPrivateEndpointConnectionName : (string)PrivateEndpointConnectionName;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject json ? new DesktopVirtualizationApiIdentity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._workspaceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._workspaceName.ToString()) : null, "workspaceName" ,container.Add ); + AddIf( null != (((object)this._scalingPlanName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._scalingPlanName.ToString()) : null, "scalingPlanName" ,container.Add ); + AddIf( null != (((object)this._hostPoolName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._hostPoolName.ToString()) : null, "hostPoolName" ,container.Add ); + AddIf( null != (((object)this._applicationGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationGroupName.ToString()) : null, "applicationGroupName" ,container.Add ); + AddIf( null != (((object)this._applicationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._applicationName.ToString()) : null, "applicationName" ,container.Add ); + AddIf( null != (((object)this._desktopName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._desktopName.ToString()) : null, "desktopName" ,container.Add ); + AddIf( null != (((object)this._sessionHostName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._sessionHostName.ToString()) : null, "sessionHostName" ,container.Add ); + AddIf( null != (((object)this._userSessionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._userSessionId.ToString()) : null, "userSessionId" ,container.Add ); + AddIf( null != (((object)this._msixPackageFullName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._msixPackageFullName.ToString()) : null, "msixPackageFullName" ,container.Add ); + AddIf( null != (((object)this._privateEndpointConnectionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonString(this._privateEndpointConnectionName.ToString()) : null, "privateEndpointConnectionName" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Support/ApplicationGroupType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.Completer.cs new file mode 100644 index 000000000000..a9d412d9aedb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of ApplicationGroup. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupTypeTypeConverter))] + public partial struct ApplicationGroupType : + 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) || "RemoteApp".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("RemoteApp", "RemoteApp", global::System.Management.Automation.CompletionResultType.ParameterValue, "RemoteApp"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Desktop".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Desktop", "Desktop", global::System.Management.Automation.CompletionResultType.ParameterValue, "Desktop"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.TypeConverter.cs new file mode 100644 index 000000000000..9697007a2093 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of ApplicationGroup. + public partial class ApplicationGroupTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ApplicationGroupType.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/desktopvirtualization/generated/api/Support/ApplicationGroupType.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.cs new file mode 100644 index 000000000000..14b9a4fc5dd7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationGroupType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of ApplicationGroup. + public partial struct ApplicationGroupType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType Desktop = @"Desktop"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType RemoteApp = @"RemoteApp"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private ApplicationGroupType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApplicationGroupType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApplicationGroupType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApplicationGroupType + /// 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.DesktopVirtualizationApi.Support.ApplicationGroupType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ApplicationGroupType (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 ApplicationGroupType && Equals((ApplicationGroupType)obj); + } + + /// Returns hashCode for enum ApplicationGroupType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApplicationGroupType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApplicationGroupType + /// the value to convert to an instance of . + + public static implicit operator ApplicationGroupType(string value) + { + return new ApplicationGroupType(value); + } + + /// Implicit operator to convert ApplicationGroupType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType e) + { + return e._value; + } + + /// Overriding != operator for enum ApplicationGroupType + /// 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.DesktopVirtualizationApi.Support.ApplicationGroupType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApplicationGroupType + /// 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.DesktopVirtualizationApi.Support.ApplicationGroupType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.Completer.cs new file mode 100644 index 000000000000..96e4c0a7e623 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Application type of application. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationTypeTypeConverter))] + public partial struct ApplicationType : + 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) || "RemoteApp".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("RemoteApp", "RemoteApp", global::System.Management.Automation.CompletionResultType.ParameterValue, "RemoteApp"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Desktop".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Desktop", "Desktop", global::System.Management.Automation.CompletionResultType.ParameterValue, "Desktop"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.TypeConverter.cs new file mode 100644 index 000000000000..2649994457d0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Application type of application. + public partial class ApplicationTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ApplicationType.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/desktopvirtualization/generated/api/Support/ApplicationType.cs b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.cs new file mode 100644 index 000000000000..c3d170008f9a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Application type of application. + public partial struct ApplicationType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType Desktop = @"Desktop"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType RemoteApp = @"RemoteApp"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private ApplicationType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApplicationType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApplicationType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApplicationType + /// 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.DesktopVirtualizationApi.Support.ApplicationType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ApplicationType (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 ApplicationType && Equals((ApplicationType)obj); + } + + /// Returns hashCode for enum ApplicationType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApplicationType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApplicationType + /// the value to convert to an instance of . + + public static implicit operator ApplicationType(string value) + { + return new ApplicationType(value); + } + + /// Implicit operator to convert ApplicationType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType e) + { + return e._value; + } + + /// Overriding != operator for enum ApplicationType + /// 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.DesktopVirtualizationApi.Support.ApplicationType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApplicationType + /// 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.DesktopVirtualizationApi.Support.ApplicationType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.Completer.cs new file mode 100644 index 000000000000..4777e8d29246 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.Completer.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSettingTypeConverter))] + public partial struct CommandLineSetting : + 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) || "DoNotAllow".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DoNotAllow", "DoNotAllow", global::System.Management.Automation.CompletionResultType.ParameterValue, "DoNotAllow"); + } + 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) || "Require".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Require", "Require", global::System.Management.Automation.CompletionResultType.ParameterValue, "Require"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.TypeConverter.cs new file mode 100644 index 000000000000..9e36daa44c82 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + public partial class CommandLineSettingTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => CommandLineSetting.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/desktopvirtualization/generated/api/Support/CommandLineSetting.cs b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.cs new file mode 100644 index 000000000000..6869e5a79cf1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/CommandLineSetting.cs @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + public partial struct CommandLineSetting : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting Allow = @"Allow"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting DoNotAllow = @"DoNotAllow"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting Require = @"Require"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private CommandLineSetting(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to CommandLineSetting + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CommandLineSetting(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type CommandLineSetting + /// 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.DesktopVirtualizationApi.Support.CommandLineSetting e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CommandLineSetting (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 CommandLineSetting && Equals((CommandLineSetting)obj); + } + + /// Returns hashCode for enum CommandLineSetting + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CommandLineSetting + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CommandLineSetting + /// the value to convert to an instance of . + + public static implicit operator CommandLineSetting(string value) + { + return new CommandLineSetting(value); + } + + /// Implicit operator to convert CommandLineSetting to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting e) + { + return e._value; + } + + /// Overriding != operator for enum CommandLineSetting + /// 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.DesktopVirtualizationApi.Support.CommandLineSetting e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CommandLineSetting + /// 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.DesktopVirtualizationApi.Support.CommandLineSetting e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.Completer.cs new file mode 100644 index 000000000000..737a744c5144 --- /dev/null +++ b/swaggerci/desktopvirtualization/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.DesktopVirtualizationApi.Support +{ + + /// The type of identity that created the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Support/CreatedByType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.TypeConverter.cs new file mode 100644 index 000000000000..128823736f78 --- /dev/null +++ b/swaggerci/desktopvirtualization/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.DesktopVirtualizationApi.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/desktopvirtualization/generated/api/Support/CreatedByType.cs b/swaggerci/desktopvirtualization/generated/api/Support/CreatedByType.cs new file mode 100644 index 000000000000..d382ce5af2ce --- /dev/null +++ b/swaggerci/desktopvirtualization/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.DesktopVirtualizationApi.Support +{ + + /// The type of identity that created the resource. + public partial struct CreatedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to CreatedByType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CreatedByType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private CreatedByType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CreatedByType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CreatedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.Completer.cs new file mode 100644 index 000000000000..ae78c0db0960 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.Completer.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// Day of the week. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeekTypeConverter))] + public partial struct DayOfWeek : + 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) || "Monday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Monday", "Monday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Monday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Tuesday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Tuesday", "Tuesday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Tuesday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Wednesday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Wednesday", "Wednesday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Wednesday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Thursday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Thursday", "Thursday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Thursday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Friday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Friday", "Friday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Friday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Saturday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Saturday", "Saturday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Saturday"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Sunday".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Sunday", "Sunday", global::System.Management.Automation.CompletionResultType.ParameterValue, "Sunday"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.TypeConverter.cs new file mode 100644 index 000000000000..593ff6e7a1ed --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.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.DesktopVirtualizationApi.Support +{ + + /// Day of the week. + public partial class DayOfWeekTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DayOfWeek.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/desktopvirtualization/generated/api/Support/DayOfWeek.cs b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.cs new file mode 100644 index 000000000000..7b230b95aac2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DayOfWeek.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.DesktopVirtualizationApi.Support +{ + + /// Day of the week. + public partial struct DayOfWeek : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Friday = @"Friday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Monday = @"Monday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Saturday = @"Saturday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Sunday = @"Sunday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Thursday = @"Thursday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Tuesday = @"Tuesday"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek Wednesday = @"Wednesday"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DayOfWeek + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DayOfWeek(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DayOfWeek(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DayOfWeek + /// 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.DesktopVirtualizationApi.Support.DayOfWeek e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DayOfWeek (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 DayOfWeek && Equals((DayOfWeek)obj); + } + + /// Returns hashCode for enum DayOfWeek + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DayOfWeek + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DayOfWeek + /// the value to convert to an instance of . + + public static implicit operator DayOfWeek(string value) + { + return new DayOfWeek(value); + } + + /// Implicit operator to convert DayOfWeek to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek e) + { + return e._value; + } + + /// Overriding != operator for enum DayOfWeek + /// 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.DesktopVirtualizationApi.Support.DayOfWeek e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DayOfWeek + /// 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.DesktopVirtualizationApi.Support.DayOfWeek e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.Completer.cs new file mode 100644 index 000000000000..26c1db72adae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.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.DesktopVirtualizationApi.Support +{ + + /// The type of domain join done by the virtual machine. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinTypeTypeConverter))] + public partial struct DomainJoinType : + 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) || "ActiveDirectory".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("ActiveDirectory", "ActiveDirectory", global::System.Management.Automation.CompletionResultType.ParameterValue, "ActiveDirectory"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AzureActiveDirectory".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("AzureActiveDirectory", "AzureActiveDirectory", global::System.Management.Automation.CompletionResultType.ParameterValue, "AzureActiveDirectory"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.TypeConverter.cs new file mode 100644 index 000000000000..f5257445ec14 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.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.DesktopVirtualizationApi.Support +{ + + /// The type of domain join done by the virtual machine. + public partial class DomainJoinTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DomainJoinType.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/desktopvirtualization/generated/api/Support/DomainJoinType.cs b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.cs new file mode 100644 index 000000000000..cffc600d7cd1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/DomainJoinType.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.DesktopVirtualizationApi.Support +{ + + /// The type of domain join done by the virtual machine. + public partial struct DomainJoinType : + System.IEquatable + { + /// Using microsoft active directory. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType ActiveDirectory = @"ActiveDirectory"; + + /// Using microsoft azure active directory. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType AzureActiveDirectory = @"AzureActiveDirectory"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DomainJoinType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DomainJoinType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DomainJoinType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DomainJoinType + /// 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.DesktopVirtualizationApi.Support.DomainJoinType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DomainJoinType (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 DomainJoinType && Equals((DomainJoinType)obj); + } + + /// Returns hashCode for enum DomainJoinType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DomainJoinType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DomainJoinType + /// the value to convert to an instance of . + + public static implicit operator DomainJoinType(string value) + { + return new DomainJoinType(value); + } + + /// Implicit operator to convert DomainJoinType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType e) + { + return e._value; + } + + /// Overriding != operator for enum DomainJoinType + /// 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.DesktopVirtualizationApi.Support.DomainJoinType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DomainJoinType + /// 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.DesktopVirtualizationApi.Support.DomainJoinType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DomainJoinType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.Completer.cs new file mode 100644 index 000000000000..25c77f2c00df --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.Completer.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// Represents the name of the health check operation performed. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckNameTypeConverter))] + public partial struct HealthCheckName : + 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) || "DomainJoinedCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DomainJoinedCheck", "DomainJoinedCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "DomainJoinedCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DomainTrustCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DomainTrustCheck", "DomainTrustCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "DomainTrustCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "FSLogixHealthCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("FSLogixHealthCheck", "FSLogixHealthCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "FSLogixHealthCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SxSStackListenerCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SxSStackListenerCheck", "SxSStackListenerCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "SxSStackListenerCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UrlsAccessibleCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("UrlsAccessibleCheck", "UrlsAccessibleCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "UrlsAccessibleCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MonitoringAgentCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("MonitoringAgentCheck", "MonitoringAgentCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "MonitoringAgentCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DomainReachable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DomainReachable", "DomainReachable", global::System.Management.Automation.CompletionResultType.ParameterValue, "DomainReachable"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "WebRTCRedirectorCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("WebRTCRedirectorCheck", "WebRTCRedirectorCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "WebRTCRedirectorCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SupportedEncryptionCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SupportedEncryptionCheck", "SupportedEncryptionCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "SupportedEncryptionCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MetaDataServiceCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("MetaDataServiceCheck", "MetaDataServiceCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "MetaDataServiceCheck"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AppAttachHealthCheck".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("AppAttachHealthCheck", "AppAttachHealthCheck", global::System.Management.Automation.CompletionResultType.ParameterValue, "AppAttachHealthCheck"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.TypeConverter.cs new file mode 100644 index 000000000000..6b152af00784 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.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.DesktopVirtualizationApi.Support +{ + + /// Represents the name of the health check operation performed. + public partial class HealthCheckNameTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => HealthCheckName.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/desktopvirtualization/generated/api/Support/HealthCheckName.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.cs new file mode 100644 index 000000000000..0515d8b8b6ca --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckName.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.DesktopVirtualizationApi.Support +{ + + /// Represents the name of the health check operation performed. + public partial struct HealthCheckName : + System.IEquatable + { + /// + /// Verifies that the AppAttachService is healthy (there were no issues during package staging). The AppAttachService is used + /// to enable the staging/registration (and eventual deregistration/destaging) of MSIX apps that have been set up by the tenant + /// admin. This checks whether the component had any failures during package staging. Failures in staging will prevent some + /// MSIX apps from working properly for the end user. If this check fails, it is non fatal and the machine still can service + /// connections, main issue may be certain apps will not work for end-users. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName AppAttachHealthCheck = @"AppAttachHealthCheck"; + + /// + /// Verifies the SessionHost is joined to a domain. If this check fails is classified as fatal as no connection can succeed + /// if the SessionHost is not joined to the domain. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName DomainJoinedCheck = @"DomainJoinedCheck"; + + /// + /// Verifies the domain the SessionHost is joined to is still reachable. If this check fails is classified as fatal as no + /// connection can succeed if the domain the SessionHost is joined is not reachable at the time of connection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName DomainReachable = @"DomainReachable"; + + /// + /// Verifies the SessionHost is not experiencing domain trust issues that will prevent authentication on SessionHost at connection + /// time when session is created. If this check fails is classified as fatal as no connection can succeed if we cannot reach + /// the domain for authentication on the SessionHost. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName DomainTrustCheck = @"DomainTrustCheck"; + + /// + /// Verifies the FSLogix service is up and running to make sure users' profiles are loaded in the session. If this check fails + /// is classified as fatal as even if the connection can succeed, user experience is bad as the user profile cannot be loaded + /// and user will get a temporary profile in the session. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName FsLogixHealthCheck = @"FSLogixHealthCheck"; + + /// Verifies the metadata service is accessible and return compute properties. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName MetaDataServiceCheck = @"MetaDataServiceCheck"; + + /// + /// Verifies that the required Geneva agent is running. If this check fails, it is non fatal and the machine still can service + /// connections, main issue may be that monitoring agent is missing or running (possibly) older version. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName MonitoringAgentCheck = @"MonitoringAgentCheck"; + + /// + /// Verifies the value of SecurityLayer registration key. If the value is 0 (SecurityLayer.RDP) this check fails with Error + /// code = NativeMethodErrorCode.E_FAIL and is fatal. If the value is 1 (SecurityLayer.Negotiate) this check fails with Error + /// code = NativeMethodErrorCode.ERROR_SUCCESS and is non fatal. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName SupportedEncryptionCheck = @"SupportedEncryptionCheck"; + + /// + /// Verifies that the SxS stack is up and running so connections can succeed. If this check fails is classified as fatal as + /// no connection can succeed if the SxS stack is not ready. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName SxSStackListenerCheck = @"SxSStackListenerCheck"; + + /// + /// Verifies that the required WVD service and Geneva URLs are reachable from the SessionHost. These URLs are: RdTokenUri, + /// RdBrokerURI, RdDiagnosticsUri and storage blob URLs for agent monitoring (geneva). If this check fails, it is non fatal + /// and the machine still can service connections, main issue may be that monitoring agent is unable to store warm path data + /// (logs, operations ...). + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName UrlsAccessibleCheck = @"UrlsAccessibleCheck"; + + /// + /// Verifies whether the WebRTCRedirector component is healthy. The WebRTCRedirector component is used to optimize video and + /// audio performance in Microsoft Teams. This checks whether the component is still running, and whether there is a higher + /// version available. If this check fails, it is non fatal and the machine still can service connections, main issue may + /// be the WebRTCRedirector component has to be restarted or updated. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName WebRtcRedirectorCheck = @"WebRTCRedirectorCheck"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HealthCheckName + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HealthCheckName(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HealthCheckName + /// 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.DesktopVirtualizationApi.Support.HealthCheckName e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HealthCheckName (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 HealthCheckName && Equals((HealthCheckName)obj); + } + + /// Returns hashCode for enum HealthCheckName + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private HealthCheckName(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HealthCheckName + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HealthCheckName + /// the value to convert to an instance of . + + public static implicit operator HealthCheckName(string value) + { + return new HealthCheckName(value); + } + + /// Implicit operator to convert HealthCheckName to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName e) + { + return e._value; + } + + /// Overriding != operator for enum HealthCheckName + /// 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.DesktopVirtualizationApi.Support.HealthCheckName e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HealthCheckName + /// 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.DesktopVirtualizationApi.Support.HealthCheckName e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckName e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.Completer.cs new file mode 100644 index 000000000000..07bb7404aa7b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.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.DesktopVirtualizationApi.Support +{ + + /// Represents the Health state of the health check we performed. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResultTypeConverter))] + public partial struct HealthCheckResult : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unknown".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Unknown", "Unknown", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unknown"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HealthCheckSucceeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("HealthCheckSucceeded", "HealthCheckSucceeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "HealthCheckSucceeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HealthCheckFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("HealthCheckFailed", "HealthCheckFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "HealthCheckFailed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SessionHostShutdown".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SessionHostShutdown", "SessionHostShutdown", global::System.Management.Automation.CompletionResultType.ParameterValue, "SessionHostShutdown"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.TypeConverter.cs new file mode 100644 index 000000000000..8db46aca00de --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.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.DesktopVirtualizationApi.Support +{ + + /// Represents the Health state of the health check we performed. + public partial class HealthCheckResultTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => HealthCheckResult.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/desktopvirtualization/generated/api/Support/HealthCheckResult.cs b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.cs new file mode 100644 index 000000000000..74adf406a6d8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HealthCheckResult.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.DesktopVirtualizationApi.Support +{ + + /// Represents the Health state of the health check we performed. + public partial struct HealthCheckResult : + System.IEquatable + { + /// Health check failed. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult HealthCheckFailed = @"HealthCheckFailed"; + + /// Health check passed. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult HealthCheckSucceeded = @"HealthCheckSucceeded"; + + /// We received a Shutdown notification. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult SessionHostShutdown = @"SessionHostShutdown"; + + /// Health check result is not currently known. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult Unknown = @"Unknown"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HealthCheckResult + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HealthCheckResult(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HealthCheckResult + /// 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.DesktopVirtualizationApi.Support.HealthCheckResult e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HealthCheckResult (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 HealthCheckResult && Equals((HealthCheckResult)obj); + } + + /// Returns hashCode for enum HealthCheckResult + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private HealthCheckResult(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HealthCheckResult + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HealthCheckResult + /// the value to convert to an instance of . + + public static implicit operator HealthCheckResult(string value) + { + return new HealthCheckResult(value); + } + + /// Implicit operator to convert HealthCheckResult to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult e) + { + return e._value; + } + + /// Overriding != operator for enum HealthCheckResult + /// 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.DesktopVirtualizationApi.Support.HealthCheckResult e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HealthCheckResult + /// 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.DesktopVirtualizationApi.Support.HealthCheckResult e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HealthCheckResult e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.Completer.cs new file mode 100644 index 000000000000..849b2ea3aacf --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.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.DesktopVirtualizationApi.Support +{ + + /// HostPool type for desktop. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolTypeTypeConverter))] + public partial struct HostPoolType : + 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) || "Personal".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Personal", "Personal", global::System.Management.Automation.CompletionResultType.ParameterValue, "Personal"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Pooled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Pooled", "Pooled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Pooled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "BYODesktop".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("BYODesktop", "BYODesktop", global::System.Management.Automation.CompletionResultType.ParameterValue, "BYODesktop"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.TypeConverter.cs new file mode 100644 index 000000000000..630e6ff4e90f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.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.DesktopVirtualizationApi.Support +{ + + /// HostPool type for desktop. + public partial class HostPoolTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => HostPoolType.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/desktopvirtualization/generated/api/Support/HostPoolType.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.cs new file mode 100644 index 000000000000..4ac582fdedab --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolType.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.DesktopVirtualizationApi.Support +{ + + /// HostPool type for desktop. + public partial struct HostPoolType : + System.IEquatable + { + /// + /// Users assign their own machines, load balancing logic remains the same as Personal. PersonalDesktopAssignmentType must + /// be Direct. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType ByoDesktop = @"BYODesktop"; + + /// + /// Users will be assigned a SessionHost either by administrators (PersonalDesktopAssignmentType = Direct) or upon connecting + /// to the pool (PersonalDesktopAssignmentType = Automatic). They will always be redirected to their assigned SessionHost. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType Personal = @"Personal"; + + /// Users get a new (random) SessionHost every time it connects to the HostPool. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType Pooled = @"Pooled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HostPoolType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HostPoolType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HostPoolType + /// 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.DesktopVirtualizationApi.Support.HostPoolType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HostPoolType (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 HostPoolType && Equals((HostPoolType)obj); + } + + /// Returns hashCode for enum HostPoolType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private HostPoolType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HostPoolType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HostPoolType + /// the value to convert to an instance of . + + public static implicit operator HostPoolType(string value) + { + return new HostPoolType(value); + } + + /// Implicit operator to convert HostPoolType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType e) + { + return e._value; + } + + /// Overriding != operator for enum HostPoolType + /// 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.DesktopVirtualizationApi.Support.HostPoolType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HostPoolType + /// 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.DesktopVirtualizationApi.Support.HostPoolType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.Completer.cs new file mode 100644 index 000000000000..c4f41d391121 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.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.DesktopVirtualizationApi.Support +{ + + /// Action types for controlling hostpool update. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateActionTypeConverter))] + public partial struct HostPoolUpdateAction : + 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) || "Start".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Start", "Start", global::System.Management.Automation.CompletionResultType.ParameterValue, "Start"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Pause".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Pause", "Pause", global::System.Management.Automation.CompletionResultType.ParameterValue, "Pause"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Cancel".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Cancel", "Cancel", global::System.Management.Automation.CompletionResultType.ParameterValue, "Cancel"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Retry".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Retry", "Retry", global::System.Management.Automation.CompletionResultType.ParameterValue, "Retry"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Resume".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Resume", "Resume", global::System.Management.Automation.CompletionResultType.ParameterValue, "Resume"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.TypeConverter.cs new file mode 100644 index 000000000000..5939bb72433b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.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.DesktopVirtualizationApi.Support +{ + + /// Action types for controlling hostpool update. + public partial class HostPoolUpdateActionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => HostPoolUpdateAction.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/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.cs new file mode 100644 index 000000000000..6c5dfd288864 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateAction.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.DesktopVirtualizationApi.Support +{ + + /// Action types for controlling hostpool update. + public partial struct HostPoolUpdateAction : + System.IEquatable + { + /// Cancel the hostpool update. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Cancel = @"Cancel"; + + /// Pause the hostpool update. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Pause = @"Pause"; + + /// Resume the hostpool update. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Resume = @"Resume"; + + /// Retry the hostpool update. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Retry = @"Retry"; + + /// Start the hostpool update. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Start = @"Start"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HostPoolUpdateAction + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HostPoolUpdateAction(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HostPoolUpdateAction + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateAction e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HostPoolUpdateAction (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 HostPoolUpdateAction && Equals((HostPoolUpdateAction)obj); + } + + /// Returns hashCode for enum HostPoolUpdateAction + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private HostPoolUpdateAction(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HostPoolUpdateAction + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HostPoolUpdateAction + /// the value to convert to an instance of . + + public static implicit operator HostPoolUpdateAction(string value) + { + return new HostPoolUpdateAction(value); + } + + /// Implicit operator to convert HostPoolUpdateAction to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction e) + { + return e._value; + } + + /// Overriding != operator for enum HostPoolUpdateAction + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateAction e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HostPoolUpdateAction + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateAction e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.Completer.cs new file mode 100644 index 000000000000..839aef786b28 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.Completer.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// State of hostpool update. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatusTypeConverter))] + public partial struct HostPoolUpdateStatus : + 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) || "Scheduled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Scheduled", "Scheduled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Scheduled"); + } + 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) || "Pausing".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Pausing", "Pausing", global::System.Management.Automation.CompletionResultType.ParameterValue, "Pausing"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Paused".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Paused", "Paused", global::System.Management.Automation.CompletionResultType.ParameterValue, "Paused"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StartFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("StartFailed", "StartFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "StartFailed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UpdateFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("UpdateFailed", "UpdateFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "UpdateFailed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Cancelling".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Cancelling", "Cancelling", global::System.Management.Automation.CompletionResultType.ParameterValue, "Cancelling"); + } + 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) || "Completed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Completed", "Completed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Completed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.TypeConverter.cs new file mode 100644 index 000000000000..460b0c5a3901 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.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.DesktopVirtualizationApi.Support +{ + + /// State of hostpool update. + public partial class HostPoolUpdateStatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => HostPoolUpdateStatus.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/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.cs b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.cs new file mode 100644 index 000000000000..5a88c60f841d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/HostPoolUpdateStatus.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.DesktopVirtualizationApi.Support +{ + + /// State of hostpool update. + public partial struct HostPoolUpdateStatus : + System.IEquatable + { + /// Hostpool update canceled. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Canceled = @"Canceled"; + + /// Hostpool update cancelling. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Cancelling = @"Cancelling"; + + /// Hostpool update completed. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Completed = @"Completed"; + + /// Hostpool update in progress. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus InProgress = @"InProgress"; + + /// Hostpool update paused. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Paused = @"Paused"; + + /// Hostpool update pausing. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Pausing = @"Pausing"; + + /// Hostpool update scheduled. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus Scheduled = @"Scheduled"; + + /// Hostpool update start failed. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus StartFailed = @"StartFailed"; + + /// Hostpool update update failed. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus UpdateFailed = @"UpdateFailed"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HostPoolUpdateStatus + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HostPoolUpdateStatus(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HostPoolUpdateStatus + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HostPoolUpdateStatus (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 HostPoolUpdateStatus && Equals((HostPoolUpdateStatus)obj); + } + + /// Returns hashCode for enum HostPoolUpdateStatus + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private HostPoolUpdateStatus(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HostPoolUpdateStatus + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HostPoolUpdateStatus + /// the value to convert to an instance of . + + public static implicit operator HostPoolUpdateStatus(string value) + { + return new HostPoolUpdateStatus(value); + } + + /// Implicit operator to convert HostPoolUpdateStatus to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e) + { + return e._value; + } + + /// Overriding != operator for enum HostPoolUpdateStatus + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HostPoolUpdateStatus + /// 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.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateStatus e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ImageType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.Completer.cs new file mode 100644 index 000000000000..84644a6f7984 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.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.DesktopVirtualizationApi.Support +{ + + /// The type of image session hosts use in the hostpool. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageTypeTypeConverter))] + public partial struct ImageType : + 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) || "Gallery".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Gallery", "Gallery", global::System.Management.Automation.CompletionResultType.ParameterValue, "Gallery"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StorageBlob".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("StorageBlob", "StorageBlob", global::System.Management.Automation.CompletionResultType.ParameterValue, "StorageBlob"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CustomImage".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("CustomImage", "CustomImage", global::System.Management.Automation.CompletionResultType.ParameterValue, "CustomImage"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ImageType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.TypeConverter.cs new file mode 100644 index 000000000000..2e9edb33b9fa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.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.DesktopVirtualizationApi.Support +{ + + /// The type of image session hosts use in the hostpool. + public partial class ImageTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ImageType.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/desktopvirtualization/generated/api/Support/ImageType.cs b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.cs new file mode 100644 index 000000000000..9db6e8688a66 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ImageType.cs @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// The type of image session hosts use in the hostpool. + public partial struct ImageType : + System.IEquatable + { + /// Using custom image or custom shared image. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType CustomImage = @"CustomImage"; + + /// Using default gallery images offered by azure market place. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType Gallery = @"Gallery"; + + /// Using a VHD stored in a storage blob. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType StorageBlob = @"StorageBlob"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ImageType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ImageType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ImageType + /// 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.DesktopVirtualizationApi.Support.ImageType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ImageType (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 ImageType && Equals((ImageType)obj); + } + + /// Returns hashCode for enum ImageType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private ImageType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ImageType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ImageType + /// the value to convert to an instance of . + + public static implicit operator ImageType(string value) + { + return new ImageType(value); + } + + /// Implicit operator to convert ImageType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType e) + { + return e._value; + } + + /// Overriding != operator for enum ImageType + /// 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.DesktopVirtualizationApi.Support.ImageType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ImageType + /// 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.DesktopVirtualizationApi.Support.ImageType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ImageType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.Completer.cs new file mode 100644 index 000000000000..eded43ba7173 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.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.DesktopVirtualizationApi.Support +{ + + /// The type of the load balancer. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerTypeTypeConverter))] + public partial struct LoadBalancerType : + 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) || "BreadthFirst".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("BreadthFirst", "BreadthFirst", global::System.Management.Automation.CompletionResultType.ParameterValue, "BreadthFirst"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DepthFirst".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DepthFirst", "DepthFirst", global::System.Management.Automation.CompletionResultType.ParameterValue, "DepthFirst"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Persistent".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Persistent", "Persistent", global::System.Management.Automation.CompletionResultType.ParameterValue, "Persistent"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.TypeConverter.cs new file mode 100644 index 000000000000..520c4bde828f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.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.DesktopVirtualizationApi.Support +{ + + /// The type of the load balancer. + public partial class LoadBalancerTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => LoadBalancerType.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/desktopvirtualization/generated/api/Support/LoadBalancerType.cs b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.cs new file mode 100644 index 000000000000..2aa204baeb98 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/LoadBalancerType.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.DesktopVirtualizationApi.Support +{ + + /// The type of the load balancer. + public partial struct LoadBalancerType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType BreadthFirst = @"BreadthFirst"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType DepthFirst = @"DepthFirst"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType Persistent = @"Persistent"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to LoadBalancerType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new LoadBalancerType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type LoadBalancerType + /// 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.DesktopVirtualizationApi.Support.LoadBalancerType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type LoadBalancerType (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 LoadBalancerType && Equals((LoadBalancerType)obj); + } + + /// Returns hashCode for enum LoadBalancerType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private LoadBalancerType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for LoadBalancerType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to LoadBalancerType + /// the value to convert to an instance of . + + public static implicit operator LoadBalancerType(string value) + { + return new LoadBalancerType(value); + } + + /// Implicit operator to convert LoadBalancerType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType e) + { + return e._value; + } + + /// Overriding != operator for enum LoadBalancerType + /// 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.DesktopVirtualizationApi.Support.LoadBalancerType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum LoadBalancerType + /// 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.DesktopVirtualizationApi.Support.LoadBalancerType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/Operation.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/Operation.Completer.cs new file mode 100644 index 000000000000..3b7994396ebc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Operation.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.DesktopVirtualizationApi.Support +{ + + /// The type of operation for migration. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.OperationTypeConverter))] + public partial struct Operation : + 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) || "Start".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Start", "Start", global::System.Management.Automation.CompletionResultType.ParameterValue, "Start"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Revoke".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Revoke", "Revoke", global::System.Management.Automation.CompletionResultType.ParameterValue, "Revoke"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Complete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Complete", "Complete", global::System.Management.Automation.CompletionResultType.ParameterValue, "Complete"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Hide".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Hide", "Hide", global::System.Management.Automation.CompletionResultType.ParameterValue, "Hide"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unhide".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Unhide", "Unhide", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unhide"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/Operation.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/Operation.TypeConverter.cs new file mode 100644 index 000000000000..af88fae624cf --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Operation.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.DesktopVirtualizationApi.Support +{ + + /// The type of operation for migration. + public partial class OperationTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => 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) => Operation.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/desktopvirtualization/generated/api/Support/Operation.cs b/swaggerci/desktopvirtualization/generated/api/Support/Operation.cs new file mode 100644 index 000000000000..dbec444bb9be --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Operation.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.DesktopVirtualizationApi.Support +{ + + /// The type of operation for migration. + public partial struct Operation : + System.IEquatable + { + /// Complete the migration. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation Complete = @"Complete"; + + /// Hide the hostpool. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation Hide = @"Hide"; + + /// Revoke the migration. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation Revoke = @"Revoke"; + + /// Start the migration. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation Start = @"Start"; + + /// Unhide the hostpool. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation Unhide = @"Unhide"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Operation + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Operation(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Operation + /// 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.DesktopVirtualizationApi.Support.Operation e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Operation (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 Operation && Equals((Operation)obj); + } + + /// Returns hashCode for enum Operation + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private Operation(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Operation + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Operation + /// the value to convert to an instance of . + + public static implicit operator Operation(string value) + { + return new Operation(value); + } + + /// Implicit operator to convert Operation to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation e) + { + return e._value; + } + + /// Overriding != operator for enum Operation + /// 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.DesktopVirtualizationApi.Support.Operation e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Operation + /// 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.DesktopVirtualizationApi.Support.Operation e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.Completer.cs new file mode 100644 index 000000000000..411457b08e3e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.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.DesktopVirtualizationApi.Support +{ + + /// PersonalDesktopAssignment type for HostPool. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentTypeTypeConverter))] + public partial struct PersonalDesktopAssignmentType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Automatic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Automatic", "Automatic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Automatic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Direct".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Direct", "Direct", global::System.Management.Automation.CompletionResultType.ParameterValue, "Direct"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.TypeConverter.cs new file mode 100644 index 000000000000..5744e7dad8eb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.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.DesktopVirtualizationApi.Support +{ + + /// PersonalDesktopAssignment type for HostPool. + public partial class PersonalDesktopAssignmentTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PersonalDesktopAssignmentType.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/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.cs b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.cs new file mode 100644 index 000000000000..66a4f99ede02 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PersonalDesktopAssignmentType.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.DesktopVirtualizationApi.Support +{ + + /// PersonalDesktopAssignment type for HostPool. + public partial struct PersonalDesktopAssignmentType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType Automatic = @"Automatic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType Direct = @"Direct"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PersonalDesktopAssignmentType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PersonalDesktopAssignmentType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PersonalDesktopAssignmentType + /// 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.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PersonalDesktopAssignmentType (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 PersonalDesktopAssignmentType && Equals((PersonalDesktopAssignmentType)obj); + } + + /// Returns hashCode for enum PersonalDesktopAssignmentType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private PersonalDesktopAssignmentType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PersonalDesktopAssignmentType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PersonalDesktopAssignmentType + /// the value to convert to an instance of . + + public static implicit operator PersonalDesktopAssignmentType(string value) + { + return new PersonalDesktopAssignmentType(value); + } + + /// Implicit operator to convert PersonalDesktopAssignmentType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e) + { + return e._value; + } + + /// Overriding != operator for enum PersonalDesktopAssignmentType + /// 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.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PersonalDesktopAssignmentType + /// 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.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.Completer.cs new file mode 100644 index 000000000000..4b60859c47d8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.Completer.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. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupTypeTypeConverter))] + public partial struct PreferredAppGroupType : + 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) || "Desktop".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Desktop", "Desktop", global::System.Management.Automation.CompletionResultType.ParameterValue, "Desktop"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "RailApplications".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("RailApplications", "RailApplications", global::System.Management.Automation.CompletionResultType.ParameterValue, "RailApplications"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.TypeConverter.cs new file mode 100644 index 000000000000..01bba569da81 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.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.DesktopVirtualizationApi.Support +{ + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + public partial class PreferredAppGroupTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PreferredAppGroupType.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/desktopvirtualization/generated/api/Support/PreferredAppGroupType.cs b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.cs new file mode 100644 index 000000000000..2f7de0839441 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PreferredAppGroupType.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.DesktopVirtualizationApi.Support +{ + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + public partial struct PreferredAppGroupType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType Desktop = @"Desktop"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType RailApplications = @"RailApplications"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PreferredAppGroupType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PreferredAppGroupType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PreferredAppGroupType + /// 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.DesktopVirtualizationApi.Support.PreferredAppGroupType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PreferredAppGroupType (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 PreferredAppGroupType && Equals((PreferredAppGroupType)obj); + } + + /// Returns hashCode for enum PreferredAppGroupType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PreferredAppGroupType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PreferredAppGroupType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PreferredAppGroupType + /// the value to convert to an instance of . + + public static implicit operator PreferredAppGroupType(string value) + { + return new PreferredAppGroupType(value); + } + + /// Implicit operator to convert PreferredAppGroupType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType e) + { + return e._value; + } + + /// Overriding != operator for enum PreferredAppGroupType + /// 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.DesktopVirtualizationApi.Support.PreferredAppGroupType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PreferredAppGroupType + /// 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.DesktopVirtualizationApi.Support.PreferredAppGroupType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.Completer.cs new file mode 100644 index 000000000000..da772f8770c6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.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.DesktopVirtualizationApi.Support +{ + + /// The current provisioning state. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningStateTypeConverter))] + public partial struct PrivateEndpointConnectionProvisioningState : + 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) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Creating", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Deleting", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Failed", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..a2ecb2a6e28f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.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.DesktopVirtualizationApi.Support +{ + + /// The current provisioning state. + public partial class PrivateEndpointConnectionProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PrivateEndpointConnectionProvisioningState.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/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.cs new file mode 100644 index 000000000000..f31d33d81d25 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointConnectionProvisioningState.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.DesktopVirtualizationApi.Support +{ + + /// The current provisioning state. + public partial struct PrivateEndpointConnectionProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PrivateEndpointConnectionProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PrivateEndpointConnectionProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PrivateEndpointConnectionProvisioningState + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PrivateEndpointConnectionProvisioningState (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 PrivateEndpointConnectionProvisioningState && Equals((PrivateEndpointConnectionProvisioningState)obj); + } + + /// Returns hashCode for enum PrivateEndpointConnectionProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private PrivateEndpointConnectionProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PrivateEndpointConnectionProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// + /// Implicit operator to convert string to PrivateEndpointConnectionProvisioningState + /// + /// the value to convert to an instance of . + + public static implicit operator PrivateEndpointConnectionProvisioningState(string value) + { + return new PrivateEndpointConnectionProvisioningState(value); + } + + /// + /// Implicit operator to convert PrivateEndpointConnectionProvisioningState to string + /// + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PrivateEndpointConnectionProvisioningState + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PrivateEndpointConnectionProvisioningState + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointConnectionProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.Completer.cs new file mode 100644 index 000000000000..fea67cca5a5f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.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.DesktopVirtualizationApi.Support +{ + + /// The private endpoint connection status. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatusTypeConverter))] + public partial struct PrivateEndpointServiceConnectionStatus : + 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) || "Pending".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Pending", "Pending", global::System.Management.Automation.CompletionResultType.ParameterValue, "Pending"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Approved".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Approved", "Approved", global::System.Management.Automation.CompletionResultType.ParameterValue, "Approved"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Rejected".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Rejected", "Rejected", global::System.Management.Automation.CompletionResultType.ParameterValue, "Rejected"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.TypeConverter.cs new file mode 100644 index 000000000000..017029782109 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.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.DesktopVirtualizationApi.Support +{ + + /// The private endpoint connection status. + public partial class PrivateEndpointServiceConnectionStatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PrivateEndpointServiceConnectionStatus.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/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.cs b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.cs new file mode 100644 index 000000000000..fab980bfebc2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PrivateEndpointServiceConnectionStatus.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.DesktopVirtualizationApi.Support +{ + + /// The private endpoint connection status. + public partial struct PrivateEndpointServiceConnectionStatus : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus Approved = @"Approved"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus Pending = @"Pending"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus Rejected = @"Rejected"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PrivateEndpointServiceConnectionStatus + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PrivateEndpointServiceConnectionStatus(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PrivateEndpointServiceConnectionStatus + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PrivateEndpointServiceConnectionStatus (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 PrivateEndpointServiceConnectionStatus && Equals((PrivateEndpointServiceConnectionStatus)obj); + } + + /// Returns hashCode for enum PrivateEndpointServiceConnectionStatus + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private PrivateEndpointServiceConnectionStatus(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PrivateEndpointServiceConnectionStatus + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PrivateEndpointServiceConnectionStatus + /// the value to convert to an instance of . + + public static implicit operator PrivateEndpointServiceConnectionStatus(string value) + { + return new PrivateEndpointServiceConnectionStatus(value); + } + + /// Implicit operator to convert PrivateEndpointServiceConnectionStatus to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e) + { + return e._value; + } + + /// Overriding != operator for enum PrivateEndpointServiceConnectionStatus + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PrivateEndpointServiceConnectionStatus + /// 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.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PrivateEndpointServiceConnectionStatus e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.Completer.cs new file mode 100644 index 000000000000..0e6d240b2499 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.Completer.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccessTypeConverter))] + public partial struct PublicNetworkAccess : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Enabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Enabled", "Enabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Enabled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Disabled", "Disabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disabled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.TypeConverter.cs new file mode 100644 index 000000000000..16744a1e6f82 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + public partial class PublicNetworkAccessTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => PublicNetworkAccess.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.cs b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.cs new file mode 100644 index 000000000000..e60626da61d5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/PublicNetworkAccess.cs @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + public partial struct PublicNetworkAccess : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess Disabled = @"Disabled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess Enabled = @"Enabled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PublicNetworkAccess + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PublicNetworkAccess(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PublicNetworkAccess + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PublicNetworkAccess (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is PublicNetworkAccess && Equals((PublicNetworkAccess)obj); + } + + /// Returns hashCode for enum PublicNetworkAccess + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PublicNetworkAccess(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PublicNetworkAccess + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PublicNetworkAccess + /// the value to convert to an instance of . + + public static implicit operator PublicNetworkAccess(string value) + { + return new PublicNetworkAccess(value); + } + + /// Implicit operator to convert PublicNetworkAccess to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e) + { + return e._value; + } + + /// Overriding != operator for enum PublicNetworkAccess + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PublicNetworkAccess + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.Completer.cs new file mode 100644 index 000000000000..834ffd89a3fe --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.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.DesktopVirtualizationApi.Support +{ + + /// The type of resetting the token. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperationTypeConverter))] + public partial struct RegistrationTokenOperation : + 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) || "Delete".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Delete", "Delete", global::System.Management.Automation.CompletionResultType.ParameterValue, "Delete"); + } + 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) || "Update".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Update", "Update", global::System.Management.Automation.CompletionResultType.ParameterValue, "Update"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.TypeConverter.cs new file mode 100644 index 000000000000..89256eea1214 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.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.DesktopVirtualizationApi.Support +{ + + /// The type of resetting the token. + public partial class RegistrationTokenOperationTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => RegistrationTokenOperation.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/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.cs b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.cs new file mode 100644 index 000000000000..188d46e80ec7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RegistrationTokenOperation.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.DesktopVirtualizationApi.Support +{ + + /// The type of resetting the token. + public partial struct RegistrationTokenOperation : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation Delete = @"Delete"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation Update = @"Update"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to RegistrationTokenOperation + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new RegistrationTokenOperation(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type RegistrationTokenOperation + /// 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.DesktopVirtualizationApi.Support.RegistrationTokenOperation e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type RegistrationTokenOperation (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 RegistrationTokenOperation && Equals((RegistrationTokenOperation)obj); + } + + /// Returns hashCode for enum RegistrationTokenOperation + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private RegistrationTokenOperation(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for RegistrationTokenOperation + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to RegistrationTokenOperation + /// the value to convert to an instance of . + + public static implicit operator RegistrationTokenOperation(string value) + { + return new RegistrationTokenOperation(value); + } + + /// Implicit operator to convert RegistrationTokenOperation to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation e) + { + return e._value; + } + + /// Overriding != operator for enum RegistrationTokenOperation + /// 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.DesktopVirtualizationApi.Support.RegistrationTokenOperation e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum RegistrationTokenOperation + /// 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.DesktopVirtualizationApi.Support.RegistrationTokenOperation e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.Completer.cs new file mode 100644 index 000000000000..29acaca55268 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of Application. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationTypeTypeConverter))] + public partial struct RemoteApplicationType : + 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) || "InBuilt".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("InBuilt", "InBuilt", global::System.Management.Automation.CompletionResultType.ParameterValue, "InBuilt"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MsixApplication".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("MsixApplication", "MsixApplication", global::System.Management.Automation.CompletionResultType.ParameterValue, "MsixApplication"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.TypeConverter.cs new file mode 100644 index 000000000000..d14664436739 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of Application. + public partial class RemoteApplicationTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => RemoteApplicationType.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/desktopvirtualization/generated/api/Support/RemoteApplicationType.cs b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.cs new file mode 100644 index 000000000000..58ba868c404a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/RemoteApplicationType.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.DesktopVirtualizationApi.Support +{ + + /// Resource Type of Application. + public partial struct RemoteApplicationType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType InBuilt = @"InBuilt"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType MsixApplication = @"MsixApplication"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to RemoteApplicationType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new RemoteApplicationType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type RemoteApplicationType + /// 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.DesktopVirtualizationApi.Support.RemoteApplicationType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type RemoteApplicationType (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 RemoteApplicationType && Equals((RemoteApplicationType)obj); + } + + /// Returns hashCode for enum RemoteApplicationType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private RemoteApplicationType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for RemoteApplicationType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to RemoteApplicationType + /// the value to convert to an instance of . + + public static implicit operator RemoteApplicationType(string value) + { + return new RemoteApplicationType(value); + } + + /// Implicit operator to convert RemoteApplicationType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType e) + { + return e._value; + } + + /// Overriding != operator for enum RemoteApplicationType + /// 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.DesktopVirtualizationApi.Support.RemoteApplicationType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum RemoteApplicationType + /// 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.DesktopVirtualizationApi.Support.RemoteApplicationType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.Completer.cs new file mode 100644 index 000000000000..6f4e5695b0f8 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.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.DesktopVirtualizationApi.Support +{ + + /// The identity type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityTypeTypeConverter))] + public partial struct ResourceIdentityType : + 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) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SystemAssigned", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.TypeConverter.cs new file mode 100644 index 000000000000..577d5f8b71ab --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.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.DesktopVirtualizationApi.Support +{ + + /// The identity type. + public partial class ResourceIdentityTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ResourceIdentityType.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/desktopvirtualization/generated/api/Support/ResourceIdentityType.cs b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.cs new file mode 100644 index 000000000000..6dd2bf5e47ce --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/ResourceIdentityType.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.DesktopVirtualizationApi.Support +{ + + /// The identity type. + public partial struct ResourceIdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType SystemAssigned = @"SystemAssigned"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceIdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceIdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceIdentityType + /// 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.DesktopVirtualizationApi.Support.ResourceIdentityType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ResourceIdentityType (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 ResourceIdentityType && Equals((ResourceIdentityType)obj); + } + + /// Returns hashCode for enum ResourceIdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private ResourceIdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceIdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceIdentityType + /// the value to convert to an instance of . + + public static implicit operator ResourceIdentityType(string value) + { + return new ResourceIdentityType(value); + } + + /// Implicit operator to convert ResourceIdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceIdentityType + /// 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.DesktopVirtualizationApi.Support.ResourceIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceIdentityType + /// 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.DesktopVirtualizationApi.Support.ResourceIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.Completer.cs new file mode 100644 index 000000000000..97a661688998 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.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.DesktopVirtualizationApi.Support +{ + + /// The type of maintenance for session host components. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateTypeTypeConverter))] + public partial struct SessionHostComponentUpdateType : + 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) || "Default".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Default", "Default", global::System.Management.Automation.CompletionResultType.ParameterValue, "Default"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TenantAdminControlled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("TenantAdminControlled", "TenantAdminControlled", global::System.Management.Automation.CompletionResultType.ParameterValue, "TenantAdminControlled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.TypeConverter.cs new file mode 100644 index 000000000000..edbc8daff325 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.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.DesktopVirtualizationApi.Support +{ + + /// The type of maintenance for session host components. + public partial class SessionHostComponentUpdateTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SessionHostComponentUpdateType.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/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.cs new file mode 100644 index 000000000000..223cf267e616 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostComponentUpdateType.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.DesktopVirtualizationApi.Support +{ + + /// The type of maintenance for session host components. + public partial struct SessionHostComponentUpdateType : + System.IEquatable + { + /// + /// Agent and other agent side components are delivery schedule is controlled by WVD Infra. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType Default = @"Default"; + + /// TenantAdmin have opted in for Scheduled Component Update feature. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType TenantAdminControlled = @"TenantAdminControlled"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to SessionHostComponentUpdateType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SessionHostComponentUpdateType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SessionHostComponentUpdateType + /// 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.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type SessionHostComponentUpdateType (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 SessionHostComponentUpdateType && Equals((SessionHostComponentUpdateType)obj); + } + + /// Returns hashCode for enum SessionHostComponentUpdateType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private SessionHostComponentUpdateType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SessionHostComponentUpdateType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SessionHostComponentUpdateType + /// the value to convert to an instance of . + + public static implicit operator SessionHostComponentUpdateType(string value) + { + return new SessionHostComponentUpdateType(value); + } + + /// Implicit operator to convert SessionHostComponentUpdateType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e) + { + return e._value; + } + + /// Overriding != operator for enum SessionHostComponentUpdateType + /// 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.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SessionHostComponentUpdateType + /// 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.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.Completer.cs new file mode 100644 index 000000000000..5fab75039640 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.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.DesktopVirtualizationApi.Support +{ + + /// Load balancing algorithm for ramp up period. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithmTypeConverter))] + public partial struct SessionHostLoadBalancingAlgorithm : + 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) || "BreadthFirst".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("BreadthFirst", "BreadthFirst", global::System.Management.Automation.CompletionResultType.ParameterValue, "BreadthFirst"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DepthFirst".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DepthFirst", "DepthFirst", global::System.Management.Automation.CompletionResultType.ParameterValue, "DepthFirst"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.TypeConverter.cs new file mode 100644 index 000000000000..808e2f19b063 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.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.DesktopVirtualizationApi.Support +{ + + /// Load balancing algorithm for ramp up period. + public partial class SessionHostLoadBalancingAlgorithmTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SessionHostLoadBalancingAlgorithm.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/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.cs new file mode 100644 index 000000000000..8d8cd020795d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostLoadBalancingAlgorithm.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.DesktopVirtualizationApi.Support +{ + + /// Load balancing algorithm for ramp up period. + public partial struct SessionHostLoadBalancingAlgorithm : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm BreadthFirst = @"BreadthFirst"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm DepthFirst = @"DepthFirst"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to SessionHostLoadBalancingAlgorithm + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SessionHostLoadBalancingAlgorithm(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SessionHostLoadBalancingAlgorithm + /// 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.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type SessionHostLoadBalancingAlgorithm (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 SessionHostLoadBalancingAlgorithm && Equals((SessionHostLoadBalancingAlgorithm)obj); + } + + /// Returns hashCode for enum SessionHostLoadBalancingAlgorithm + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private SessionHostLoadBalancingAlgorithm(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SessionHostLoadBalancingAlgorithm + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SessionHostLoadBalancingAlgorithm + /// the value to convert to an instance of . + + public static implicit operator SessionHostLoadBalancingAlgorithm(string value) + { + return new SessionHostLoadBalancingAlgorithm(value); + } + + /// Implicit operator to convert SessionHostLoadBalancingAlgorithm to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e) + { + return e._value; + } + + /// Overriding != operator for enum SessionHostLoadBalancingAlgorithm + /// 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.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SessionHostLoadBalancingAlgorithm + /// 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.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostLoadBalancingAlgorithm e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.Completer.cs new file mode 100644 index 000000000000..65e8171e4b33 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.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.DesktopVirtualizationApi.Support +{ + + /// Updating state of the session host. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatusTypeConverter))] + public partial struct SessionHostUpdateStatus : + 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) || "NotInProgress".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("NotInProgress", "NotInProgress", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotInProgress"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.TypeConverter.cs new file mode 100644 index 000000000000..776268c1c7e2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.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.DesktopVirtualizationApi.Support +{ + + /// Updating state of the session host. + public partial class SessionHostUpdateStatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SessionHostUpdateStatus.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/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.cs new file mode 100644 index 000000000000..6729045688ae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionHostUpdateStatus.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.DesktopVirtualizationApi.Support +{ + + /// Updating state of the session host. + public partial struct SessionHostUpdateStatus : + System.IEquatable + { + /// Session host update in progress. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus InProgress = @"InProgress"; + + /// Session host update not in progress. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus NotInProgress = @"NotInProgress"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SessionHostUpdateStatus + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SessionHostUpdateStatus(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SessionHostUpdateStatus + /// 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.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SessionHostUpdateStatus (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 SessionHostUpdateStatus && Equals((SessionHostUpdateStatus)obj); + } + + /// Returns hashCode for enum SessionHostUpdateStatus + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private SessionHostUpdateStatus(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SessionHostUpdateStatus + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SessionHostUpdateStatus + /// the value to convert to an instance of . + + public static implicit operator SessionHostUpdateStatus(string value) + { + return new SessionHostUpdateStatus(value); + } + + /// Implicit operator to convert SessionHostUpdateStatus to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e) + { + return e._value; + } + + /// Overriding != operator for enum SessionHostUpdateStatus + /// 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.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SessionHostUpdateStatus + /// 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.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostUpdateStatus e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionState.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.Completer.cs new file mode 100644 index 000000000000..f3404fdef67a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.Completer.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// State of user session. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionStateTypeConverter))] + public partial struct SessionState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unknown".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Unknown", "Unknown", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unknown"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Active".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Active", "Active", global::System.Management.Automation.CompletionResultType.ParameterValue, "Active"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disconnected".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Disconnected", "Disconnected", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disconnected"); + } + 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"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "LogOff".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("LogOff", "LogOff", global::System.Management.Automation.CompletionResultType.ParameterValue, "LogOff"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserProfileDiskMounted".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("UserProfileDiskMounted", "UserProfileDiskMounted", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserProfileDiskMounted"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SessionState.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.TypeConverter.cs new file mode 100644 index 000000000000..c2fbe7f7b38b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.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.DesktopVirtualizationApi.Support +{ + + /// State of user session. + public partial class SessionStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SessionState.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/desktopvirtualization/generated/api/Support/SessionState.cs b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.cs new file mode 100644 index 000000000000..b96355aeb04b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SessionState.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.DesktopVirtualizationApi.Support +{ + + /// State of user session. + public partial struct SessionState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState Active = @"Active"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState Disconnected = @"Disconnected"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState LogOff = @"LogOff"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState Pending = @"Pending"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState Unknown = @"Unknown"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState UserProfileDiskMounted = @"UserProfileDiskMounted"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SessionState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SessionState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SessionState + /// 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.DesktopVirtualizationApi.Support.SessionState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SessionState (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 SessionState && Equals((SessionState)obj); + } + + /// Returns hashCode for enum SessionState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private SessionState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SessionState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SessionState + /// the value to convert to an instance of . + + public static implicit operator SessionState(string value) + { + return new SessionState(value); + } + + /// Implicit operator to convert SessionState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState e) + { + return e._value; + } + + /// Overriding != operator for enum SessionState + /// 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.DesktopVirtualizationApi.Support.SessionState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SessionState + /// 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.DesktopVirtualizationApi.Support.SessionState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.Completer.cs new file mode 100644 index 000000000000..5f53b6cdf8e3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.Completer.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTierTypeConverter))] + public partial struct SkuTier : + 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) || "Free".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Free", "Free", global::System.Management.Automation.CompletionResultType.ParameterValue, "Free"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Basic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Basic", "Basic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Basic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Standard", "Standard", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard"); + } + 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/desktopvirtualization/generated/api/Support/SkuTier.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.TypeConverter.cs new file mode 100644 index 000000000000..79634e9fb969 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + public partial class SkuTierTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SkuTier.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/desktopvirtualization/generated/api/Support/SkuTier.cs b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.cs new file mode 100644 index 000000000000..2f5ad4f51999 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SkuTier.cs @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + public partial struct SkuTier : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier Basic = @"Basic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier Free = @"Free"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier Premium = @"Premium"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier Standard = @"Standard"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SkuTier + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SkuTier(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SkuTier + /// 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.DesktopVirtualizationApi.Support.SkuTier e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SkuTier (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 SkuTier && Equals((SkuTier)obj); + } + + /// Returns hashCode for enum SkuTier + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private SkuTier(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SkuTier + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SkuTier + /// the value to convert to an instance of . + + public static implicit operator SkuTier(string value) + { + return new SkuTier(value); + } + + /// Implicit operator to convert SkuTier to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier e) + { + return e._value; + } + + /// Overriding != operator for enum SkuTier + /// 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.DesktopVirtualizationApi.Support.SkuTier e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SkuTier + /// 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.DesktopVirtualizationApi.Support.SkuTier e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.Completer.cs new file mode 100644 index 000000000000..a076aa090076 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.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.DesktopVirtualizationApi.Support +{ + + /// The type of single sign on Secret Type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretTypeTypeConverter))] + public partial struct SsoSecretType : + 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) || "SharedKey".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SharedKey", "SharedKey", global::System.Management.Automation.CompletionResultType.ParameterValue, "SharedKey"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Certificate".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Certificate", "Certificate", global::System.Management.Automation.CompletionResultType.ParameterValue, "Certificate"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SharedKeyInKeyVault".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SharedKeyInKeyVault", "SharedKeyInKeyVault", global::System.Management.Automation.CompletionResultType.ParameterValue, "SharedKeyInKeyVault"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CertificateInKeyVault".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("CertificateInKeyVault", "CertificateInKeyVault", global::System.Management.Automation.CompletionResultType.ParameterValue, "CertificateInKeyVault"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.TypeConverter.cs new file mode 100644 index 000000000000..fe2efe37e334 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.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.DesktopVirtualizationApi.Support +{ + + /// The type of single sign on Secret Type. + public partial class SsoSecretTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => SsoSecretType.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/desktopvirtualization/generated/api/Support/SsoSecretType.cs b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.cs new file mode 100644 index 000000000000..b06c16cd8584 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/SsoSecretType.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.DesktopVirtualizationApi.Support +{ + + /// The type of single sign on Secret Type. + public partial struct SsoSecretType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType Certificate = @"Certificate"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType CertificateInKeyVault = @"CertificateInKeyVault"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType SharedKey = @"SharedKey"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType SharedKeyInKeyVault = @"SharedKeyInKeyVault"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SsoSecretType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SsoSecretType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SsoSecretType + /// 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.DesktopVirtualizationApi.Support.SsoSecretType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SsoSecretType (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 SsoSecretType && Equals((SsoSecretType)obj); + } + + /// Returns hashCode for enum SsoSecretType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private SsoSecretType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SsoSecretType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SsoSecretType + /// the value to convert to an instance of . + + public static implicit operator SsoSecretType(string value) + { + return new SsoSecretType(value); + } + + /// Implicit operator to convert SsoSecretType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType e) + { + return e._value; + } + + /// Overriding != operator for enum SsoSecretType + /// 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.DesktopVirtualizationApi.Support.SsoSecretType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SsoSecretType + /// 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.DesktopVirtualizationApi.Support.SsoSecretType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/Status.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/Status.Completer.cs new file mode 100644 index 000000000000..29a0996c605b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Status.Completer.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// Status for a SessionHost. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StatusTypeConverter))] + public partial struct Status : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Available".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Available", "Available", global::System.Management.Automation.CompletionResultType.ParameterValue, "Available"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unavailable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Unavailable", "Unavailable", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unavailable"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Shutdown".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Shutdown", "Shutdown", global::System.Management.Automation.CompletionResultType.ParameterValue, "Shutdown"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disconnected".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Disconnected", "Disconnected", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disconnected"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Upgrading".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Upgrading", "Upgrading", global::System.Management.Automation.CompletionResultType.ParameterValue, "Upgrading"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UpgradeFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("UpgradeFailed", "UpgradeFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "UpgradeFailed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NoHeartbeat".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("NoHeartbeat", "NoHeartbeat", global::System.Management.Automation.CompletionResultType.ParameterValue, "NoHeartbeat"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NotJoinedToDomain".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("NotJoinedToDomain", "NotJoinedToDomain", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotJoinedToDomain"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DomainTrustRelationshipLost".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("DomainTrustRelationshipLost", "DomainTrustRelationshipLost", global::System.Management.Automation.CompletionResultType.ParameterValue, "DomainTrustRelationshipLost"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SxSStackListenerNotReady".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("SxSStackListenerNotReady", "SxSStackListenerNotReady", global::System.Management.Automation.CompletionResultType.ParameterValue, "SxSStackListenerNotReady"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "FSLogixNotHealthy".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("FSLogixNotHealthy", "FSLogixNotHealthy", global::System.Management.Automation.CompletionResultType.ParameterValue, "FSLogixNotHealthy"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NeedsAssistance".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("NeedsAssistance", "NeedsAssistance", global::System.Management.Automation.CompletionResultType.ParameterValue, "NeedsAssistance"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/Status.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/Status.TypeConverter.cs new file mode 100644 index 000000000000..6e188f6bd9b0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Status.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support +{ + + /// Status for a SessionHost. + public partial class StatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Status.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/Status.cs b/swaggerci/desktopvirtualization/generated/api/Support/Status.cs new file mode 100644 index 000000000000..f391bc432b60 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/Status.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.DesktopVirtualizationApi.Support +{ + + /// Status for a SessionHost. + public partial struct Status : + System.IEquatable + { + /// + /// Session Host has passed all the health checks and is available to handle connections. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status Available = @"Available"; + + /// The Session Host is unavailable because it is currently disconnected. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status Disconnected = @"Disconnected"; + + /// SessionHost's domain trust relationship lost + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status DomainTrustRelationshipLost = @"DomainTrustRelationshipLost"; + + /// FSLogix is in an unhealthy state on the session host. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status FsLogixNotHealthy = @"FSLogixNotHealthy"; + + /// + /// New status to inform admins that the health on their endpoint needs to be fixed. The connections might not fail, as these + /// issues are not fatal. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status NeedsAssistance = @"NeedsAssistance"; + + /// The Session Host is not heart beating. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status NoHeartbeat = @"NoHeartbeat"; + + /// SessionHost is not joined to domain. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status NotJoinedToDomain = @"NotJoinedToDomain"; + + /// + /// Session Host is shutdown - RD Agent reported session host to be stopped or deallocated. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status Shutdown = @"Shutdown"; + + /// SxS stack installed on the SessionHost is not ready to receive connections. + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status SxSStackListenerNotReady = @"SxSStackListenerNotReady"; + + /// + /// Session Host is either turned off or has failed critical health checks which is causing service not to be able to route + /// connections to this session host. Note this replaces previous 'NoHeartBeat' status. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status Unavailable = @"Unavailable"; + + /// + /// Session Host is unavailable because the critical component upgrade (agent, side-by-side stack, etc.) failed. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status UpgradeFailed = @"UpgradeFailed"; + + /// + /// Session Host is unavailable because currently an upgrade of RDAgent/side-by-side stack is in progress. Note: this state + /// will be removed once the upgrade completes and the host is able to accept connections. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status Upgrading = @"Upgrading"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Status + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Status(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Status + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Status (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Status && Equals((Status)obj); + } + + /// Returns hashCode for enum Status + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private Status(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Status + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Status + /// the value to convert to an instance of . + + public static implicit operator Status(string value) + { + return new Status(value); + } + + /// Implicit operator to convert Status to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e) + { + return e._value; + } + + /// Overriding != operator for enum Status + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Status + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Status e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.Completer.cs new file mode 100644 index 000000000000..7fe059cbde50 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.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.DesktopVirtualizationApi.Support +{ + + /// Specifies when to stop hosts during ramp down period. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhenTypeConverter))] + public partial struct StopHostsWhen : + 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) || "ZeroSessions".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("ZeroSessions", "ZeroSessions", global::System.Management.Automation.CompletionResultType.ParameterValue, "ZeroSessions"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ZeroActiveSessions".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("ZeroActiveSessions", "ZeroActiveSessions", global::System.Management.Automation.CompletionResultType.ParameterValue, "ZeroActiveSessions"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.TypeConverter.cs new file mode 100644 index 000000000000..183b20a03b73 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.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.DesktopVirtualizationApi.Support +{ + + /// Specifies when to stop hosts during ramp down period. + public partial class StopHostsWhenTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => StopHostsWhen.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/desktopvirtualization/generated/api/Support/StopHostsWhen.cs b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.cs new file mode 100644 index 000000000000..3e0da6966ecb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/StopHostsWhen.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.DesktopVirtualizationApi.Support +{ + + /// Specifies when to stop hosts during ramp down period. + public partial struct StopHostsWhen : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen ZeroActiveSessions = @"ZeroActiveSessions"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen ZeroSessions = @"ZeroSessions"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to StopHostsWhen + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new StopHostsWhen(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type StopHostsWhen + /// 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.DesktopVirtualizationApi.Support.StopHostsWhen e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type StopHostsWhen (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 StopHostsWhen && Equals((StopHostsWhen)obj); + } + + /// Returns hashCode for enum StopHostsWhen + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private StopHostsWhen(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for StopHostsWhen + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to StopHostsWhen + /// the value to convert to an instance of . + + public static implicit operator StopHostsWhen(string value) + { + return new StopHostsWhen(value); + } + + /// Implicit operator to convert StopHostsWhen to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen e) + { + return e._value; + } + + /// Overriding != operator for enum StopHostsWhen + /// 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.DesktopVirtualizationApi.Support.StopHostsWhen e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum StopHostsWhen + /// 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.DesktopVirtualizationApi.Support.StopHostsWhen e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.StopHostsWhen e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.Completer.cs new file mode 100644 index 000000000000..a4062bc0b1b3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.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.DesktopVirtualizationApi.Support +{ + + /// Update state of a SessionHost. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateStateTypeConverter))] + public partial struct UpdateState : + 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) || "Initial".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Initial", "Initial", global::System.Management.Automation.CompletionResultType.ParameterValue, "Initial"); + } + 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"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Started".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Started", "Started", global::System.Management.Automation.CompletionResultType.ParameterValue, "Started"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Succeeded", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Failed", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.TypeConverter.cs new file mode 100644 index 000000000000..fe549bd8e62c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.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.DesktopVirtualizationApi.Support +{ + + /// Update state of a SessionHost. + public partial class UpdateStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => UpdateState.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/desktopvirtualization/generated/api/Support/UpdateState.cs b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.cs new file mode 100644 index 000000000000..e9a1f6614e47 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/UpdateState.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.DesktopVirtualizationApi.Support +{ + + /// Update state of a SessionHost. + public partial struct UpdateState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState Initial = @"Initial"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState Pending = @"Pending"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState Started = @"Started"; + + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState Succeeded = @"Succeeded"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to UpdateState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new UpdateState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type UpdateState + /// 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.DesktopVirtualizationApi.Support.UpdateState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type UpdateState (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 UpdateState && Equals((UpdateState)obj); + } + + /// Returns hashCode for enum UpdateState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for UpdateState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the + /// the value to create an instance for. + private UpdateState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to UpdateState + /// the value to convert to an instance of . + + public static implicit operator UpdateState(string value) + { + return new UpdateState(value); + } + + /// Implicit operator to convert UpdateState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState e) + { + return e._value; + } + + /// Overriding != operator for enum UpdateState + /// 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.DesktopVirtualizationApi.Support.UpdateState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum UpdateState + /// 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.DesktopVirtualizationApi.Support.UpdateState e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.UpdateState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.Completer.cs b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.Completer.cs new file mode 100644 index 000000000000..5d6a18b4ac3c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.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.DesktopVirtualizationApi.Support +{ + + /// The disk type used by virtual machine in hostpool session host. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskTypeTypeConverter))] + public partial struct VirtualMachineDiskType : + 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) || "Standard_LRS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Standard_LRS", "Standard_LRS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_LRS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium_LRS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Premium_LRS", "Premium_LRS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium_LRS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StandardSSD_LRS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("StandardSSD_LRS", "StandardSSD_LRS", global::System.Management.Automation.CompletionResultType.ParameterValue, "StandardSSD_LRS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UltraSSD_LRS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("UltraSSD_LRS", "UltraSSD_LRS", global::System.Management.Automation.CompletionResultType.ParameterValue, "UltraSSD_LRS"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.TypeConverter.cs b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.TypeConverter.cs new file mode 100644 index 000000000000..59bc05005b4e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.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.DesktopVirtualizationApi.Support +{ + + /// The disk type used by virtual machine in hostpool session host. + public partial class VirtualMachineDiskTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => VirtualMachineDiskType.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/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.cs b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.cs new file mode 100644 index 000000000000..1be5b0d87f94 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/api/Support/VirtualMachineDiskType.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.DesktopVirtualizationApi.Support +{ + + /// The disk type used by virtual machine in hostpool session host. + public partial struct VirtualMachineDiskType : + System.IEquatable + { + /// + /// Premium SSD locally redundant storage. Best for production and performance sensitive workloads. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType PremiumLrs = @"Premium_LRS"; + + /// + /// Standard HDD locally redundant storage. Best for backup, non-critical, and infrequent access. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType StandardLrs = @"Standard_LRS"; + + /// + /// Standard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType StandardSsdLrs = @"StandardSSD_LRS"; + + /// + /// Ultra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, + /// SQL, Oracle), and other transaction-heavy workloads. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType UltraSsdLrs = @"UltraSSD_LRS"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to VirtualMachineDiskType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new VirtualMachineDiskType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type VirtualMachineDiskType + /// 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.DesktopVirtualizationApi.Support.VirtualMachineDiskType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type VirtualMachineDiskType (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 VirtualMachineDiskType && Equals((VirtualMachineDiskType)obj); + } + + /// Returns hashCode for enum VirtualMachineDiskType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for VirtualMachineDiskType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the + /// the value to create an instance for. + private VirtualMachineDiskType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to VirtualMachineDiskType + /// the value to convert to an instance of . + + public static implicit operator VirtualMachineDiskType(string value) + { + return new VirtualMachineDiskType(value); + } + + /// Implicit operator to convert VirtualMachineDiskType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType e) + { + return e._value; + } + + /// Overriding != operator for enum VirtualMachineDiskType + /// 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.DesktopVirtualizationApi.Support.VirtualMachineDiskType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum VirtualMachineDiskType + /// 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.DesktopVirtualizationApi.Support.VirtualMachineDiskType e1, Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.VirtualMachineDiskType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_Disconnect.cs b/swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_Disconnect.cs new file mode 100644 index 000000000000..d30418e34d58 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_Disconnect.cs @@ -0,0 +1,432 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Disconnect a userSession. + /// + /// [OpenAPI] Disconnect=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/disconnect" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Disconnect, @"AzDesktopVirtualizationApiUserSession_Disconnect", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Disconnect a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class DisconnectAzDesktopVirtualizationApiUserSession_Disconnect : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private string _id; + + /// The name of the user session within the specified session host + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the user session within the specified session host")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("UserSessionId")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string Id { get => this._id; set => this._id = 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisconnectAzDesktopVirtualizationApiUserSession_Disconnect() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsDisconnect' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsDisconnect(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, Id, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName,Id=Id}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity.cs new file mode 100644 index 000000000000..4d6d37a2fef9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Disconnect a userSession. + /// + /// [OpenAPI] Disconnect=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/disconnect" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Disconnect, @"AzDesktopVirtualizationApiUserSession_DisconnectViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Disconnect a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public DisconnectAzDesktopVirtualizationApiUserSession_DisconnectViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsDisconnect' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UserSessionsDisconnectViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.UserSessionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.UserSessionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UserSessionsDisconnect(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, InputObject.UserSessionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_Expand.cs b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_Expand.cs new file mode 100644 index 000000000000..02d820de64a3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_Expand.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// + /// [OpenAPI] Expand=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Expand, @"AzDesktopVirtualizationApiMsixImage_Expand", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Expands and Lists MSIX packages in an Image, given the Image Path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class ExpandAzDesktopVirtualizationApiMsixImage_Expand : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri _msixImageUri; + + /// Represents URI referring to MSIX Image + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents URI referring to MSIX Image", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents URI referring to MSIX Image", + SerializedName = @"msixImageURI", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri MsixImageUri { get => this._msixImageUri; set => this._msixImageUri = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public ExpandAzDesktopVirtualizationApiMsixImage_Expand() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixImagesExpand' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand(SubscriptionId, ResourceGroupName, HostPoolName, MsixImageUri, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,body=MsixImageUri}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=MsixImageUri }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=MsixImageUri }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded.cs new file mode 100644 index 000000000000..38dbe2172361 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// + /// [OpenAPI] Expand=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Expand, @"AzDesktopVirtualizationApiMsixImage_ExpandExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Expands and Lists MSIX packages in an Image, given the Image Path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri _msixImageUriBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixImageUri(); + + /// Represents URI referring to MSIX Image + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri MsixImageUriBody { get => this._msixImageUriBody; set => this._msixImageUriBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// URI to Image + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI to Image")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI to Image", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string Uri { get => MsixImageUriBody.Uri ?? null; set => MsixImageUriBody.Uri = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public ExpandAzDesktopVirtualizationApiMsixImage_ExpandExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixImagesExpand' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand(SubscriptionId, ResourceGroupName, HostPoolName, MsixImageUriBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,body=MsixImageUriBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=MsixImageUriBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=MsixImageUriBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity.cs new file mode 100644 index 000000000000..3a292e4c8393 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// + /// [OpenAPI] Expand=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Expand, @"AzDesktopVirtualizationApiMsixImage_ExpandViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Expands and Lists MSIX packages in an Image, given the Image Path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri _msixImageUri; + + /// Represents URI referring to MSIX Image + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents URI referring to MSIX Image", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents URI referring to MSIX Image", + SerializedName = @"msixImageURI", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri MsixImageUri { get => this._msixImageUri; set => this._msixImageUri = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixImagesExpand' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MsixImagesExpandViaIdentity(InputObject.Id, MsixImageUri, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MsixImagesExpand(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, MsixImageUri, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixImageUri}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixImageUri }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=MsixImageUri }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded.cs new file mode 100644 index 000000000000..87f977272025 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Expands and Lists MSIX packages in an Image, given the Image Path. + /// + /// [OpenAPI] Expand=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/expandMsixImage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Expand, @"AzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IExpandMsixImage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Expands and Lists MSIX packages in an Image, given the Image Path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri _msixImageUriBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixImageUri(); + + /// Represents URI referring to MSIX Image + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixImageUri MsixImageUriBody { get => this._msixImageUriBody; set => this._msixImageUriBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// URI to Image + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI to Image")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI to Image", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string Uri { get => MsixImageUriBody.Uri ?? null; set => MsixImageUriBody.Uri = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public ExpandAzDesktopVirtualizationApiMsixImage_ExpandViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixImagesExpand' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MsixImagesExpandViaIdentity(InputObject.Id, MsixImageUriBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MsixImagesExpand(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, MsixImageUriBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixImageUriBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixImageUriBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=MsixImageUriBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixImagesExpand_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_Get.cs new file mode 100644 index 000000000000..a2231c2e8be4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_Get.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get an application group. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplicationGroup_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get an application group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplicationGroup_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplicationGroup_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_GetViaIdentity.cs new file mode 100644 index 000000000000..aca65c932c19 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get an application group. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplicationGroup_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get an application group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplicationGroup_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplicationGroup_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationGroupsGetViaIdentity(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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationGroupsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List.cs new file mode 100644 index 000000000000..76ea6aa35e32 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List applicationGroups. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplicationGroup_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List applicationGroups.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplicationGroup_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "OData filter expression. Valid properties for filtering are applicationGroupType.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"OData filter expression. Valid properties for filtering are applicationGroupType.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplicationGroup_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, 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, 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List1.cs new file mode 100644 index 000000000000..046650a83aa6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplicationGroup_List1.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List applicationGroups in subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/applicationGroups" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplicationGroup_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List applicationGroups in subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplicationGroup_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// OData filter expression. Valid properties for filtering are applicationGroupType. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "OData filter expression. Valid properties for filtering are applicationGroupType.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"OData filter expression. Valid properties for filtering are applicationGroupType.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplicationGroup_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, 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, 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_Get.cs new file mode 100644 index 000000000000..25e11ae114a5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_Get.cs @@ -0,0 +1,414 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get an application. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplication_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplication_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _groupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string GroupName { get => this._groupName; set => this._groupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application within the specified application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application within the specified application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application within the specified application group", + SerializedName = @"applicationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplication_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsGet(SubscriptionId, ResourceGroupName, GroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,GroupName=GroupName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, 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, GroupName=GroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_GetViaIdentity.cs new file mode 100644 index 000000000000..5fd44cefdeae --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_GetViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get an application. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplication_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplication_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplication_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationsGetViaIdentity(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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, InputObject.ApplicationName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_List.cs new file mode 100644 index 000000000000..71e95dcc4165 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiApplication_List.cs @@ -0,0 +1,410 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List applications. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiApplication_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List applications.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiApplication_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _groupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string GroupName { get => this._groupName; set => this._groupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiApplication_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsList(SubscriptionId, ResourceGroupName, GroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,GroupName=GroupName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_Get.cs new file mode 100644 index 000000000000..c37d6bd4425a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_Get.cs @@ -0,0 +1,413 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a desktop. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiDesktop_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiDesktop_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _applicationGroupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ApplicationGroupName { get => this._applicationGroupName; set => this._applicationGroupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the desktop within the specified desktop group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the desktop within the specified desktop group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the desktop within the specified desktop group", + SerializedName = @"desktopName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DesktopName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiDesktop_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DesktopsGet(SubscriptionId, ResourceGroupName, ApplicationGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ApplicationGroupName=ApplicationGroupName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName, 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, ApplicationGroupName=ApplicationGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_GetViaIdentity.cs new file mode 100644 index 000000000000..eec0b54649b7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_GetViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a desktop. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiDesktop_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiDesktop_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiDesktop_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DesktopsGetViaIdentity(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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DesktopName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DesktopName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DesktopsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, InputObject.DesktopName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_List.cs new file mode 100644 index 000000000000..b792ee4cfb46 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiDesktop_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List desktops. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiDesktop_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List desktops.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiDesktop_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _applicationGroupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ApplicationGroupName { get => this._applicationGroupName; set => this._applicationGroupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiDesktop_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DesktopsList(SubscriptionId, ResourceGroupName, ApplicationGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ApplicationGroupName=ApplicationGroupName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DesktopsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve.cs new file mode 100644 index 000000000000..3970dd42baa4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve.cs @@ -0,0 +1,402 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Registration token of the host pool. + /// + /// [OpenAPI] RetrieveRegistrationToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/retrieveRegistrationToken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Registration token of the host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzDesktopVirtualizationApiHostPoolRegistrationToken_Retrieve() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsRetrieveRegistrationToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsRetrieveRegistrationToken(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity.cs new file mode 100644 index 000000000000..8b18cc79b13b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Registration token of the host pool. + /// + /// [OpenAPI] RetrieveRegistrationToken=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/retrieveRegistrationToken" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Registration token of the host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiHostPoolRegistrationToken_RetrieveViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsRetrieveRegistrationToken' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsRetrieveRegistrationTokenViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsRetrieveRegistrationToken(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IRegistrationInfo + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_Get.cs new file mode 100644 index 000000000000..609d77e94e7a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_Get.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a host pool. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPool_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPool_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("HostPoolName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiHostPool_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_GetViaIdentity.cs new file mode 100644 index 000000000000..b182ebf15e77 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a host pool. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPool_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPool_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiHostPool_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List.cs new file mode 100644 index 000000000000..674ceb5aba67 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List hostPools. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPool_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List hostPools.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPool_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiHostPool_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List1.cs new file mode 100644 index 000000000000..615524c3d5d2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiHostPool_List1.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List hostPools in subscription. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/hostPools" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiHostPool_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List hostPools in subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiHostPool_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiHostPool_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsList(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_Get.cs new file mode 100644 index 000000000000..8cc901852480 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_Get.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a msixpackage. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiMsixPackage_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a msixpackage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiMsixPackage_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _fullName; + + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The version specific package full name of the MSIX package within specified hostpool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The version specific package full name of the MSIX package within specified hostpool", + SerializedName = @"msixPackageFullName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("MsixPackageFullName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string FullName { get => this._fullName; set => this._fullName = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiMsixPackage_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesGet(SubscriptionId, ResourceGroupName, HostPoolName, FullName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,FullName=FullName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_GetViaIdentity.cs new file mode 100644 index 000000000000..fe70107ce7d0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_GetViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a msixpackage. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiMsixPackage_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a msixpackage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiMsixPackage_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiMsixPackage_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MsixPackagesGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.MsixPackageFullName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.MsixPackageFullName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MsixPackagesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.MsixPackageFullName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_List.cs new file mode 100644 index 000000000000..b1d50ad14b87 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiMsixPackage_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List MSIX packages in hostpool. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiMsixPackage_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List MSIX packages in hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiMsixPackage_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiMsixPackage_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesList(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiOperation_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiOperation_List.cs new file mode 100644 index 000000000000..069e6b581393 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiOperation_List.cs @@ -0,0 +1,309 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// + /// List all of the available operations the Desktop Virtualization resource provider supports. + /// + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.DesktopVirtualization/operations" + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.InternalExport] + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiOperation_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IResourceProviderOperation))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List all of the available operations the Desktop Virtualization resource provider supports.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiOperation_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiOperation_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList(onOk, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList_Call(requestMessage, onOk, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get.cs new file mode 100644 index 000000000000..6d3ff8bd90dd --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get.cs @@ -0,0 +1,413 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a private endpoint connection. + /// + /// [OpenAPI] GetByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection associated with the Azure resource + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection associated with the Azure resource")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection associated with the Azure resource", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsGetByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, 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, HostPoolName=HostPoolName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1.cs new file mode 100644 index 000000000000..75bdf7e4833f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1.cs @@ -0,0 +1,413 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a private endpoint connection. + /// + /// [OpenAPI] GetByWorkspace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_Get1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection associated with the Azure resource + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection associated with the Azure resource")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection associated with the Azure resource", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _workspaceName; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string WorkspaceName { get => this._workspaceName; set => this._workspaceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_Get1() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsGetByWorkspace(SubscriptionId, ResourceGroupName, WorkspaceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,WorkspaceName=WorkspaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName, 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, WorkspaceName=WorkspaceName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity.cs new file mode 100644 index 000000000000..38fe4dfd9d81 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a private endpoint connection. + /// + /// [OpenAPI] GetByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsGetByHostPoolViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsGetByHostPool(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1.cs new file mode 100644 index 000000000000..9d2eed5c681d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a private endpoint connection. + /// + /// [OpenAPI] GetByWorkspace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_GetViaIdentity1() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsGetByWorkspaceViaIdentity(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.WorkspaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.WorkspaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsGetByWorkspace(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.WorkspaceName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List.cs new file mode 100644 index 000000000000..94568352de77 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List private endpoint connections associated with hostpool. + /// + /// [OpenAPI] ListByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List private endpoint connections associated with hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByHostPool_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List1.cs new file mode 100644 index 000000000000..a218fef2f17c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateEndpointConnection_List1.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List private endpoint connections. + /// + /// [OpenAPI] ListByWorkspace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateEndpointConnection_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateEndpointConnectionWithSystemData))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List private endpoint connections.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateEndpointConnection_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _workspaceName; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string WorkspaceName { get => this._workspaceName; set => this._workspaceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateEndpointConnection_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByWorkspace(SubscriptionId, ResourceGroupName, WorkspaceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,WorkspaceName=WorkspaceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByWorkspace_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List.cs new file mode 100644 index 000000000000..944838d863d6 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List the private link resources available for this hostpool. + /// + /// [OpenAPI] ListByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateLinkResources" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateLinkResource_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List the private link resources available for this hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateLinkResource_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateLinkResource_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByHostPool_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List1.cs new file mode 100644 index 000000000000..6139d15f4d88 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiPrivateLinkResource_List1.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List the private link resources available for this workspace. + /// + /// [OpenAPI] ListByWorkspace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateLinkResources" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiPrivateLinkResource_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List the private link resources available for this workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiPrivateLinkResource_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _workspaceName; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string WorkspaceName { get => this._workspaceName; set => this._workspaceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiPrivateLinkResource_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByWorkspace(SubscriptionId, ResourceGroupName, WorkspaceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,WorkspaceName=WorkspaceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByWorkspace_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_Get.cs new file mode 100644 index 000000000000..e59a2d2f4814 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_Get.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a scaling plan. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiScalingPlan_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiScalingPlan_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the scaling plan.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the scaling plan.", + SerializedName = @"scalingPlanName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScalingPlanName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiScalingPlan_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_GetViaIdentity.cs new file mode 100644 index 000000000000..0e39a590a0cc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a scaling plan. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiScalingPlan_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiScalingPlan_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiScalingPlan_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScalingPlansGetViaIdentity(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.ScalingPlanName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScalingPlanName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScalingPlansGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ScalingPlanName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List.cs new file mode 100644 index 000000000000..a6c8f1906759 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List scaling plans. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiScalingPlan_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List scaling plans.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiScalingPlan_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiScalingPlan_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List1.cs new file mode 100644 index 000000000000..af5cb9fdba49 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List1.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List scaling plans in subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/scalingPlans" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiScalingPlan_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List scaling plans in subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiScalingPlan_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiScalingPlan_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List2.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List2.cs new file mode 100644 index 000000000000..900bc7db4971 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiScalingPlan_List2.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List scaling plan associated with hostpool. + /// + /// [OpenAPI] ListByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/scalingPlans" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiScalingPlan_List2")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List scaling plan associated with hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiScalingPlan_List2 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiScalingPlan_List2() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansListByHostPool_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_Get.cs new file mode 100644 index 000000000000..12ee8011e271 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_Get.cs @@ -0,0 +1,413 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a session host. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiSessionHost_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a session host.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiSessionHost_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SessionHostName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiSessionHost_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SessionHostsGet(SubscriptionId, ResourceGroupName, HostPoolName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, 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, HostPoolName=HostPoolName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_GetViaIdentity.cs new file mode 100644 index 000000000000..2d03a9f2fb44 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_GetViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a session host. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiSessionHost_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a session host.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiSessionHost_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiSessionHost_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SessionHostsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SessionHostsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_List.cs new file mode 100644 index 000000000000..a4bfcebd7beb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiSessionHost_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List sessionHosts. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiSessionHost_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List sessionHosts.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiSessionHost_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiSessionHost_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SessionHostsList(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SessionHostsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiStartMenuItem_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiStartMenuItem_List.cs new file mode 100644 index 000000000000..570815263c69 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiStartMenuItem_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List start menu items in the given application group. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/startMenuItems" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiStartMenuItem_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IStartMenuItem))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List start menu items in the given application group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiStartMenuItem_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _applicationGroupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ApplicationGroupName { get => this._applicationGroupName; set => this._applicationGroupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiStartMenuItem_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StartMenuItemsList(SubscriptionId, ResourceGroupName, ApplicationGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ApplicationGroupName=ApplicationGroupName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StartMenuItemsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_Get.cs new file mode 100644 index 000000000000..320a6656da73 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_Get.cs @@ -0,0 +1,398 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateDetails/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateDetail_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateDetail_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUpdateDetail_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UpdateDetailsGet(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_GetViaIdentity.cs new file mode 100644 index 000000000000..024dd32de16b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateDetails/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateDetail_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateDetail_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUpdateDetail_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UpdateDetailsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UpdateDetailsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_List.cs new file mode 100644 index 000000000000..b4e078fbd8b9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateDetail_List.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateDetails" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateDetail_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUpdateStatus))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateDetail_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUpdateDetail_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UpdateDetailsList(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UpdateDetailsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_Get.cs new file mode 100644 index 000000000000..eae4b9731eea --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_Get.cs @@ -0,0 +1,464 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateOperationResults/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateOperationResult_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateOperationResult_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of GetAzDesktopVirtualizationApiUpdateOperationResult_Get + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.GetAzDesktopVirtualizationApiUpdateOperationResult_Get Clone() + { + var clone = new GetAzDesktopVirtualizationApiUpdateOperationResult_Get(); + 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.HostPoolName = this.HostPoolName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUpdateOperationResult_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UpdateOperationResultsGet(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity.cs new file mode 100644 index 000000000000..bee5eef10868 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateOperationResults/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity Clone() + { + var clone = new GetAzDesktopVirtualizationApiUpdateOperationResult_GetViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzDesktopVirtualizationApiUpdateOperationResult_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UpdateOperationResultsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UpdateOperationResultsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateFullProperties + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get.cs new file mode 100644 index 000000000000..37b62048e7ba --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get.cs @@ -0,0 +1,467 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateValidationOperationResults/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateValidationOperationResult_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get Clone() + { + var clone = new GetAzDesktopVirtualizationApiUpdateValidationOperationResult_Get(); + 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.HostPoolName = this.HostPoolName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzDesktopVirtualizationApiUpdateValidationOperationResult_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UpdateValidationOperationResultsGet(SubscriptionId, ResourceGroupName, HostPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity.cs new file mode 100644 index 000000000000..06e45f9791f0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Operation status of a validate hostpool update. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/updateValidationOperationResults/current" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Operation status of a validate hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity Clone() + { + var clone = new GetAzDesktopVirtualizationApiUpdateValidationOperationResult_GetViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUpdateValidationOperationResult_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UpdateValidationOperationResultsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UpdateValidationOperationResultsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdateValidationResponse + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_Get.cs new file mode 100644 index 000000000000..a628cb8c7865 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_Get.cs @@ -0,0 +1,427 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a userSession. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUserSession_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUserSession_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private string _id; + + /// The name of the user session within the specified session host + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the user session within the specified session host")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("UserSessionId")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string Id { get => this._id; set => this._id = 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUserSession_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsGet(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, Id, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName,Id=Id}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_GetViaIdentity.cs new file mode 100644 index 000000000000..8f06dca0aa9b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_GetViaIdentity.cs @@ -0,0 +1,385 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a userSession. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUserSession_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUserSession_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUserSession_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UserSessionsGetViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.UserSessionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.UserSessionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UserSessionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, InputObject.UserSessionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List.cs new file mode 100644 index 000000000000..27ef2ad8d2cb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List userSessions. + /// + /// [OpenAPI] ListByHostPool=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/userSessions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUserSession_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List userSessions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUserSession_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// OData filter expression. Valid properties for filtering are userprincipalname and sessionstate. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"OData filter expression. Valid properties for filtering are userprincipalname and sessionstate.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public string Filter { get => this._filter; set => this._filter = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUserSession_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsListByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, 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, HostPoolName=HostPoolName, 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsListByHostPool_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List1.cs new file mode 100644 index 000000000000..65112a74e38d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiUserSession_List1.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List userSessions. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiUserSession_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IUserSession))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List userSessions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiUserSession_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiUserSession_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsList(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_Get.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_Get.cs new file mode 100644 index 000000000000..9a52a1084819 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_Get.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a workspace. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiWorkspace_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiWorkspace_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("WorkspaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiWorkspace_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_GetViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_GetViaIdentity.cs new file mode 100644 index 000000000000..d1e4ac06a71f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Get a workspace. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiWorkspace_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Get a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiWorkspace_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiWorkspace_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.WorkspacesGetViaIdentity(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.WorkspaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.WorkspaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.WorkspacesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.WorkspaceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List.cs new file mode 100644 index 000000000000..fd4ee9570ee9 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List workspaces. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiWorkspace_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List workspaces.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiWorkspace_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiWorkspace_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List1.cs new file mode 100644 index 000000000000..0c56e1ceddf7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/GetAzDesktopVirtualizationApiWorkspace_List1.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// List workspaces in subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.DesktopVirtualization/workspaces" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzDesktopVirtualizationApiWorkspace_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"List workspaces in subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class GetAzDesktopVirtualizationApiWorkspace_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzDesktopVirtualizationApiWorkspace_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.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.NextLink ),Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control.cs b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control.cs new file mode 100644 index 000000000000..431f01799b1a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Control update of a hostpool. + /// + /// [OpenAPI] ControlUpdate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/controlUpdate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzDesktopVirtualizationApiControlHostPoolUpdate_Control", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Control update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter _hostPoolControlParameter; + + /// Represents properties for a hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents properties for a hostpool update.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents properties for a hostpool update.", + SerializedName = @"hostPoolControlParameter", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter HostPoolControlParameter { get => this._hostPoolControlParameter; set => this._hostPoolControlParameter = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_Control() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsControlUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsControlUpdate(SubscriptionId, ResourceGroupName, HostPoolName, HostPoolControlParameter, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,body=HostPoolControlParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolControlParameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolControlParameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded.cs new file mode 100644 index 000000000000..f4134e50b6c4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Control update of a hostpool. + /// + /// [OpenAPI] ControlUpdate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/controlUpdate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Control update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Action types for controlling hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Action types for controlling hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Action types for controlling hostpool update.", + SerializedName = @"action", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Action { get => HostPoolControlParameterBody.Action ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction)""); set => HostPoolControlParameterBody.Action = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter _hostPoolControlParameterBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolControlParameter(); + + /// Represents properties for a hostpool update. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter HostPoolControlParameterBody { get => this._hostPoolControlParameterBody; set => this._hostPoolControlParameterBody = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsControlUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsControlUpdate(SubscriptionId, ResourceGroupName, HostPoolName, HostPoolControlParameterBody, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,body=HostPoolControlParameterBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolControlParameterBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolControlParameterBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity.cs new file mode 100644 index 000000000000..3a1eebb75229 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Control update of a hostpool. + /// + /// [OpenAPI] ControlUpdate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/controlUpdate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Control update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter _hostPoolControlParameter; + + /// Represents properties for a hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents properties for a hostpool update.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents properties for a hostpool update.", + SerializedName = @"hostPoolControlParameter", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter HostPoolControlParameter { get => this._hostPoolControlParameter; set => this._hostPoolControlParameter = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsControlUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsControlUpdateViaIdentity(InputObject.Id, HostPoolControlParameter, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsControlUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, HostPoolControlParameter, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolControlParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolControlParameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=HostPoolControlParameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded.cs new file mode 100644 index 000000000000..933d26206dfe --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Control update of a hostpool. + /// + /// [OpenAPI] ControlUpdate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/controlUpdate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Control update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Action types for controlling hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Action types for controlling hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Action types for controlling hostpool update.", + SerializedName = @"action", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction Action { get => HostPoolControlParameterBody.Action ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolUpdateAction)""); set => HostPoolControlParameterBody.Action = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter _hostPoolControlParameterBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolControlParameter(); + + /// Represents properties for a hostpool update. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolControlParameter HostPoolControlParameterBody { get => this._hostPoolControlParameterBody; set => this._hostPoolControlParameterBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzDesktopVirtualizationApiControlHostPoolUpdate_ControlViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsControlUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsControlUpdateViaIdentity(InputObject.Id, HostPoolControlParameterBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsControlUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, HostPoolControlParameterBody, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolControlParameterBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolControlParameterBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=HostPoolControlParameterBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded.cs new file mode 100644 index 000000000000..c2d6ee6ce874 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded.cs @@ -0,0 +1,699 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update an applicationGroup. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiApplicationGroup_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update an applicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup _applicationGroupBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroup(); + + /// Represents a ApplicationGroup definition. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup ApplicationGroupBody { get => this._applicationGroupBody; set => this._applicationGroupBody = value; } + + /// Resource Type of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource Type of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource Type of ApplicationGroup.", + SerializedName = @"applicationGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ApplicationGroupType ApplicationGroupType { get => ApplicationGroupBody.ApplicationGroupType; set => ApplicationGroupBody.ApplicationGroupType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationGroupBody.Description ?? null; set => ApplicationGroupBody.Description = value; } + + /// Friendly name of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationGroupBody.FriendlyName ?? null; set => ApplicationGroupBody.FriendlyName = value; } + + /// HostPool arm path of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "HostPool arm path of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool arm path of ApplicationGroup.", + SerializedName = @"hostPoolArmPath", + PossibleTypes = new [] { typeof(string) })] + public string HostPoolArmPath { get => ApplicationGroupBody.HostPoolArmPath ?? null; set => ApplicationGroupBody.HostPoolArmPath = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The identity type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The identity type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType IdentityType { get => ApplicationGroupBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); set => ApplicationGroupBody.IdentityType = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(string) })] + public string Kind { get => ApplicationGroupBody.Kind ?? null; set => ApplicationGroupBody.Kind = value; } + + /// The geo-location where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ApplicationGroupBody.Location ?? null; set => ApplicationGroupBody.Location = value; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + SerializedName = @"managedBy", + PossibleTypes = new [] { typeof(string) })] + public string ManagedBy { get => ApplicationGroupBody.ManagedBy ?? null; set => ApplicationGroupBody.ManagedBy = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The path to the legacy object to migrate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The path to the legacy object to migrate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + public string MigrationRequestMigrationPath { get => ApplicationGroupBody.MigrationRequestMigrationPath ?? null; set => ApplicationGroupBody.MigrationRequestMigrationPath = value; } + + /// The type of operation for migration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of operation for migration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation MigrationRequestOperation { get => ApplicationGroupBody.MigrationRequestOperation ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); set => ApplicationGroupBody.MigrationRequestOperation = value; } + + /// Backing field for property. + private string _name; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A user defined name of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PlanName { get => ApplicationGroupBody.PlanName ?? null; set => ApplicationGroupBody.PlanName = value; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string PlanProduct { get => ApplicationGroupBody.PlanProduct ?? null; set => ApplicationGroupBody.PlanProduct = value; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + public string PlanPromotionCode { get => ApplicationGroupBody.PlanPromotionCode ?? null; set => ApplicationGroupBody.PlanPromotionCode = value; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string PlanPublisher { get => ApplicationGroupBody.PlanPublisher ?? null; set => ApplicationGroupBody.PlanPublisher = value; } + + /// The version of the desired product/artifact. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the desired product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string PlanVersion { get => ApplicationGroupBody.PlanVersion ?? null; set => ApplicationGroupBody.PlanVersion = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => ApplicationGroupBody.SkuCapacity ?? default(int); set => ApplicationGroupBody.SkuCapacity = value; } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the service has different generations of hardware, for the same SKU, then that can be captured here.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + public string SkuFamily { get => ApplicationGroupBody.SkuFamily ?? null; set => ApplicationGroupBody.SkuFamily = value; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the SKU. Ex - P3. It is typically a letter+number code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => ApplicationGroupBody.SkuName ?? null; set => ApplicationGroupBody.SkuName = value; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + public string SkuSize { get => ApplicationGroupBody.SkuSize ?? null; set => ApplicationGroupBody.SkuSize = value; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier SkuTier { get => ApplicationGroupBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); set => ApplicationGroupBody.SkuTier = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ApplicationGroupBody.Tag ?? null /* object */; set => ApplicationGroupBody.Tag = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiApplicationGroup_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationGroupsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, ApplicationGroupBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=ApplicationGroupBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplication_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplication_CreateExpanded.cs new file mode 100644 index 000000000000..e8923cbdb6b2 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiApplication_CreateExpanded.cs @@ -0,0 +1,582 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update an application. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiApplication_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiApplication_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication _applicationBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Application(); + + /// Schema for Application properties. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication ApplicationBody { get => this._applicationBody; set => this._applicationBody = value; } + + /// Resource Type of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource Type of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType ApplicationType { get => ApplicationBody.ApplicationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType)""); set => ApplicationBody.ApplicationType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Command Line Arguments for Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Command Line Arguments for Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + public string CommandLineArgument { get => ApplicationBody.CommandLineArgument ?? null; set => ApplicationBody.CommandLineArgument = value; } + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get => ApplicationBody.CommandLineSetting; set => ApplicationBody.CommandLineSetting = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationBody.Description ?? null; set => ApplicationBody.Description = value; } + + /// Specifies a path for the executable file for the application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies a path for the executable file for the application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => ApplicationBody.FilePath ?? null; set => ApplicationBody.FilePath = value; } + + /// Friendly name of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationBody.FriendlyName ?? null; set => ApplicationBody.FriendlyName = value; } + + /// Backing field for property. + private string _groupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string GroupName { get => this._groupName; set => this._groupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Index of the icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Index of the icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + public int IconIndex { get => ApplicationBody.IconIndex ?? default(int); set => ApplicationBody.IconIndex = value; } + + /// Path to icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + public string IconPath { get => ApplicationBody.IconPath ?? null; set => ApplicationBody.IconPath = 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Specifies the package application Id for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package application Id for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageApplicationId { get => ApplicationBody.MsixPackageApplicationId ?? null; set => ApplicationBody.MsixPackageApplicationId = value; } + + /// Specifies the package family name for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package family name for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageFamilyName { get => ApplicationBody.MsixPackageFamilyName ?? null; set => ApplicationBody.MsixPackageFamilyName = value; } + + /// Backing field for property. + private string _name; + + /// The name of the application within the specified application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application within the specified application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application within the specified application group", + SerializedName = @"applicationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies whether to show the RemoteApp program in the RD Web Access server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ShowInPortal { get => ApplicationBody.ShowInPortal ?? default(global::System.Management.Automation.SwitchParameter); set => ApplicationBody.ShowInPortal = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiApplication_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsCreateOrUpdate(SubscriptionId, ResourceGroupName, GroupName, Name, ApplicationBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,GroupName=GroupName,Name=Name,body=ApplicationBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, Name=Name, body=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, Name=Name, body=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiHostPool_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiHostPool_CreateExpanded.cs new file mode 100644 index 000000000000..9ee7e3a27346 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiHostPool_CreateExpanded.cs @@ -0,0 +1,980 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update a host pool. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiHostPool_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiHostPool_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Custom rdp property of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Custom rdp property of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + public string CustomRdpProperty { get => HostPoolBody.CustomRdpProperty ?? null; set => HostPoolBody.CustomRdpProperty = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => HostPoolBody.Description ?? null; set => HostPoolBody.Description = value; } + + /// Friendly name of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => HostPoolBody.FriendlyName ?? null; set => HostPoolBody.FriendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool _hostPoolBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPool(); + + /// Represents a HostPool definition. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool HostPoolBody { get => this._hostPoolBody; set => this._hostPoolBody = value; } + + /// HostPool type for desktop. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "HostPool type for desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => HostPoolBody.HostPoolType; set => HostPoolBody.HostPoolType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The identity type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The identity type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType IdentityType { get => HostPoolBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); set => HostPoolBody.IdentityType = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(string) })] + public string Kind { get => HostPoolBody.Kind ?? null; set => HostPoolBody.Kind = value; } + + /// The type of the load balancer. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the load balancer.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get => HostPoolBody.LoadBalancerType; set => HostPoolBody.LoadBalancerType = value; } + + /// The geo-location where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => HostPoolBody.Location ?? null; set => HostPoolBody.Location = value; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + SerializedName = @"managedBy", + PossibleTypes = new [] { typeof(string) })] + public string ManagedBy { get => HostPoolBody.ManagedBy ?? null; set => HostPoolBody.ManagedBy = value; } + + /// The max session limit of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The max session limit of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + public int MaxSessionLimit { get => HostPoolBody.MaxSessionLimit ?? default(int); set => HostPoolBody.MaxSessionLimit = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The path to the legacy object to migrate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The path to the legacy object to migrate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the legacy object to migrate.", + SerializedName = @"migrationPath", + PossibleTypes = new [] { typeof(string) })] + public string MigrationRequestMigrationPath { get => HostPoolBody.MigrationRequestMigrationPath ?? null; set => HostPoolBody.MigrationRequestMigrationPath = value; } + + /// The type of operation for migration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of operation for migration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of operation for migration.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation MigrationRequestOperation { get => HostPoolBody.MigrationRequestOperation ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.Operation)""); set => HostPoolBody.MigrationRequestOperation = value; } + + /// Backing field for property. + private string _name; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("HostPoolName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// PersonalDesktopAssignment type for HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "PersonalDesktopAssignment type for HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType PersonalDesktopAssignmentType { get => HostPoolBody.PersonalDesktopAssignmentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType)""); set => HostPoolBody.PersonalDesktopAssignmentType = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A user defined name of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PlanName { get => HostPoolBody.PlanName ?? null; set => HostPoolBody.PlanName = value; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string PlanProduct { get => HostPoolBody.PlanProduct ?? null; set => HostPoolBody.PlanProduct = value; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + public string PlanPromotionCode { get => HostPoolBody.PlanPromotionCode ?? null; set => HostPoolBody.PlanPromotionCode = value; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string PlanPublisher { get => HostPoolBody.PlanPublisher ?? null; set => HostPoolBody.PlanPublisher = value; } + + /// The version of the desired product/artifact. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the desired product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string PlanVersion { get => HostPoolBody.PlanVersion ?? null; set => HostPoolBody.PlanVersion = value; } + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of preferred application group type, default to Desktop Application Group")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get => HostPoolBody.PreferredAppGroupType; set => HostPoolBody.PreferredAppGroupType = value; } + + /// Day of the week. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Day of the week.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek PrimaryWindowDayOfWeek { get => HostPoolBody.PrimaryWindowDayOfWeek ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); set => HostPoolBody.PrimaryWindowDayOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int PrimaryWindowHour { get => HostPoolBody.PrimaryWindowHour ?? default(int); set => HostPoolBody.PrimaryWindowHour = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => HostPoolBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => HostPoolBody.PublicNetworkAccess = value; } + + /// Expiration time of registration token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of registration token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime RegistrationInfoExpirationTime { get => HostPoolBody.RegistrationInfoExpirationTime ?? default(global::System.DateTime); set => HostPoolBody.RegistrationInfoExpirationTime = value; } + + /// The type of resetting the token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of resetting the token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation RegistrationInfoRegistrationTokenOperation { get => HostPoolBody.RegistrationInfoRegistrationTokenOperation ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); set => HostPoolBody.RegistrationInfoRegistrationTokenOperation = value; } + + /// The registration token base64 encoded string. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The registration token base64 encoded string.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The registration token base64 encoded string.", + SerializedName = @"token", + PossibleTypes = new [] { typeof(string) })] + public string RegistrationInfoToken { get => HostPoolBody.RegistrationInfoToken ?? null; set => HostPoolBody.RegistrationInfoToken = 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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The ring number of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ring number of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + public int Ring { get => HostPoolBody.Ring ?? default(int); set => HostPoolBody.Ring = value; } + + /// Set of days of the week on which this schedule is active. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set of days of the week on which this schedule is active.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + public string[] SecondaryWindowDaysOfWeek { get => HostPoolBody.SecondaryWindowDaysOfWeek ?? null /* arrayOf */; set => HostPoolBody.SecondaryWindowDaysOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int SecondaryWindowHour { get => HostPoolBody.SecondaryWindowHour ?? default(int); set => HostPoolBody.SecondaryWindowHour = value; } + + /// The type of maintenance for session host components. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of maintenance for session host components.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType SessionHostComponentUpdateConfigurationMaintenanceType { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType = value; } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + /// Must be set if useLocalTime is true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ?? null; set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = value; } + + /// Whether to use localTime of the virtual machine. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether to use localTime of the virtual machine.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = value; } + + /// The session host configurations of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The session host configurations of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => HostPoolBody.SessionHostConfiguration ?? null /* object */; set => HostPoolBody.SessionHostConfiguration = value; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => HostPoolBody.SkuCapacity ?? default(int); set => HostPoolBody.SkuCapacity = value; } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the service has different generations of hardware, for the same SKU, then that can be captured here.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + public string SkuFamily { get => HostPoolBody.SkuFamily ?? null; set => HostPoolBody.SkuFamily = value; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the SKU. Ex - P3. It is typically a letter+number code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => HostPoolBody.SkuName ?? null; set => HostPoolBody.SkuName = value; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + public string SkuSize { get => HostPoolBody.SkuSize ?? null; set => HostPoolBody.SkuSize = value; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier SkuTier { get => HostPoolBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); set => HostPoolBody.SkuTier = value; } + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ClientId for the registered Relying Party used to issue WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientId { get => HostPoolBody.SsoClientId ?? null; set => HostPoolBody.SsoClientId = value; } + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to Azure KeyVault storing the secret used for communication to ADFS.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientSecretKeyVaultPath { get => HostPoolBody.SsoClientSecretKeyVaultPath ?? null; set => HostPoolBody.SsoClientSecretKeyVaultPath = value; } + + /// The type of single sign on Secret Type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of single sign on Secret Type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType SsoSecretType { get => HostPoolBody.SsoSecretType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType)""); set => HostPoolBody.SsoSecretType = value; } + + /// URL to customer ADFS server for signing WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URL to customer ADFS server for signing WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + public string SsoadfsAuthority { get => HostPoolBody.SsoadfsAuthority ?? null; set => HostPoolBody.SsoadfsAuthority = value; } + + /// The flag to turn on/off StartVMOnConnect feature. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The flag to turn on/off StartVMOnConnect feature.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter StartVMOnConnect { get => HostPoolBody.StartVMOnConnect ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.StartVMOnConnect = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => HostPoolBody.Tag ?? null /* object */; set => HostPoolBody.Tag = value; } + + /// VM template for sessionhosts configuration within hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "VM template for sessionhosts configuration within hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + public string VMTemplate { get => HostPoolBody.VMTemplate ?? null; set => HostPoolBody.VMTemplate = value; } + + /// Is validation environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Is validation environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ValidationEnvironment { get => HostPoolBody.ValidationEnvironment ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.ValidationEnvironment = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiHostPool_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, HostPoolBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=HostPoolBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded.cs new file mode 100644 index 000000000000..1bf148e025b3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded.cs @@ -0,0 +1,582 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update a MSIX package. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiMsixPackage_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update a MSIX package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// User friendly Name to be displayed in the portal. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly Name to be displayed in the portal. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly Name to be displayed in the portal. ", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => MsixPackageBody.DisplayName ?? null; set => MsixPackageBody.DisplayName = value; } + + /// Backing field for property. + private string _fullName; + + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The version specific package full name of the MSIX package within specified hostpool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The version specific package full name of the MSIX package within specified hostpool", + SerializedName = @"msixPackageFullName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("MsixPackageFullName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string FullName { get => this._fullName; set => this._fullName = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// VHD/CIM image path on Network Share. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "VHD/CIM image path on Network Share.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VHD/CIM image path on Network Share.", + SerializedName = @"imagePath", + PossibleTypes = new [] { typeof(string) })] + public string ImagePath { get => MsixPackageBody.ImagePath ?? null; set => MsixPackageBody.ImagePath = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Make this version of the package the active one across the hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Make this version of the package the active one across the hostpool. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Make this version of the package the active one across the hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsActive { get => MsixPackageBody.IsActive ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsActive = value; } + + /// Specifies how to register Package in feed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies how to register Package in feed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies how to register Package in feed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsRegularRegistration { get => MsixPackageBody.IsRegularRegistration ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsRegularRegistration = value; } + + /// Date Package was last updated, found in the appxmanifest.xml. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Date Package was last updated, found in the appxmanifest.xml. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Date Package was last updated, found in the appxmanifest.xml. ", + SerializedName = @"lastUpdated", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime LastUpdated { get => MsixPackageBody.LastUpdated ?? default(global::System.DateTime); set => MsixPackageBody.LastUpdated = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage _msixPackageBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackage(); + + /// Schema for MSIX Package properties. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage MsixPackageBody { get => this._msixPackageBody; set => this._msixPackageBody = value; } + + /// List of package applications. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of package applications. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package applications. ", + SerializedName = @"packageApplications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageApplications[] PackageApplication { get => MsixPackageBody.PackageApplication ?? null /* arrayOf */; set => MsixPackageBody.PackageApplication = value; } + + /// List of package dependencies. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of package dependencies. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of package dependencies. ", + SerializedName = @"packageDependencies", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackageDependencies[] PackageDependency { get => MsixPackageBody.PackageDependency ?? null /* arrayOf */; set => MsixPackageBody.PackageDependency = value; } + + /// + /// Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. ", + SerializedName = @"packageFamilyName", + PossibleTypes = new [] { typeof(string) })] + public string PackageFamilyName { get => MsixPackageBody.PackageFamilyName ?? null; set => MsixPackageBody.PackageFamilyName = value; } + + /// Package Name from appxmanifest.xml. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Package Name from appxmanifest.xml. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Name from appxmanifest.xml. ", + SerializedName = @"packageName", + PossibleTypes = new [] { typeof(string) })] + public string PackageName { get => MsixPackageBody.PackageName ?? null; set => MsixPackageBody.PackageName = value; } + + /// Relative Path to the package inside the image. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Relative Path to the package inside the image. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative Path to the package inside the image. ", + SerializedName = @"packageRelativePath", + PossibleTypes = new [] { typeof(string) })] + public string PackageRelativePath { get => MsixPackageBody.PackageRelativePath ?? null; set => MsixPackageBody.PackageRelativePath = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Package Version found in the appxmanifest.xml. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Package Version found in the appxmanifest.xml. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Package Version found in the appxmanifest.xml. ", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string Version { get => MsixPackageBody.Version ?? null; set => MsixPackageBody.Version = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiMsixPackage_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixPackagesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesCreateOrUpdate(SubscriptionId, ResourceGroupName, HostPoolName, FullName, MsixPackageBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,FullName=FullName,body=MsixPackageBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName, body=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName, body=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded.cs new file mode 100644 index 000000000000..c2bb03bac0bc --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded.cs @@ -0,0 +1,711 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update a scaling plan. + /// + /// [OpenAPI] Create=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiScalingPlan_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ScalingPlanBody.Description ?? null; set => ScalingPlanBody.Description = value; } + + /// Exclusion tag for scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exclusion tag for scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + public string ExclusionTag { get => ScalingPlanBody.ExclusionTag ?? null; set => ScalingPlanBody.ExclusionTag = value; } + + /// User friendly name of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly name of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ScalingPlanBody.FriendlyName ?? null; set => ScalingPlanBody.FriendlyName = value; } + + /// List of ScalingHostPoolReference definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingHostPoolReference definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => ScalingPlanBody.HostPoolReference ?? null /* arrayOf */; set => ScalingPlanBody.HostPoolReference = value; } + + /// HostPool type for desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "HostPool type for desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => ScalingPlanBody.HostPoolType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType)""); set => ScalingPlanBody.HostPoolType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The identity type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The identity type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType IdentityType { get => ScalingPlanBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); set => ScalingPlanBody.IdentityType = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(string) })] + public string Kind { get => ScalingPlanBody.Kind ?? null; set => ScalingPlanBody.Kind = value; } + + /// The geo-location where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ScalingPlanBody.Location ?? null; set => ScalingPlanBody.Location = value; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + SerializedName = @"managedBy", + PossibleTypes = new [] { typeof(string) })] + public string ManagedBy { get => ScalingPlanBody.ManagedBy ?? null; set => ScalingPlanBody.ManagedBy = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the scaling plan.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the scaling plan.", + SerializedName = @"scalingPlanName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScalingPlanName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A user defined name of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PlanName { get => ScalingPlanBody.PlanName ?? null; set => ScalingPlanBody.PlanName = value; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string PlanProduct { get => ScalingPlanBody.PlanProduct ?? null; set => ScalingPlanBody.PlanProduct = value; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + public string PlanPromotionCode { get => ScalingPlanBody.PlanPromotionCode ?? null; set => ScalingPlanBody.PlanPromotionCode = value; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string PlanPublisher { get => ScalingPlanBody.PlanPublisher ?? null; set => ScalingPlanBody.PlanPublisher = value; } + + /// The version of the desired product/artifact. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the desired product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string PlanVersion { get => ScalingPlanBody.PlanVersion ?? null; set => ScalingPlanBody.PlanVersion = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan _scalingPlanBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlan(); + + /// Represents a scaling plan definition. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan ScalingPlanBody { get => this._scalingPlanBody; set => this._scalingPlanBody = value; } + + /// List of ScalingSchedule definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingSchedule definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => ScalingPlanBody.Schedule ?? null /* arrayOf */; set => ScalingPlanBody.Schedule = value; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => ScalingPlanBody.SkuCapacity ?? default(int); set => ScalingPlanBody.SkuCapacity = value; } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the service has different generations of hardware, for the same SKU, then that can be captured here.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + public string SkuFamily { get => ScalingPlanBody.SkuFamily ?? null; set => ScalingPlanBody.SkuFamily = value; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the SKU. Ex - P3. It is typically a letter+number code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => ScalingPlanBody.SkuName ?? null; set => ScalingPlanBody.SkuName = value; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + public string SkuSize { get => ScalingPlanBody.SkuSize ?? null; set => ScalingPlanBody.SkuSize = value; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier SkuTier { get => ScalingPlanBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); set => ScalingPlanBody.SkuTier = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => ScalingPlanBody.Tag ?? null /* object */; set => ScalingPlanBody.Tag = value; } + + /// Timezone of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Timezone of the scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + public string TimeZone { get => ScalingPlanBody.TimeZone ?? null; set => ScalingPlanBody.TimeZone = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiScalingPlan_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScalingPlansCreate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansCreate(SubscriptionId, ResourceGroupName, Name, ScalingPlanBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=ScalingPlanBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiWorkspace_CreateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiWorkspace_CreateExpanded.cs new file mode 100644 index 000000000000..5c6074807641 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/NewAzDesktopVirtualizationApiWorkspace_CreateExpanded.cs @@ -0,0 +1,680 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Create or update a workspace. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzDesktopVirtualizationApiWorkspace_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Create or update a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class NewAzDesktopVirtualizationApiWorkspace_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// List of applicationGroup resource Ids. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of applicationGroup resource Ids.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup resource Ids.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + public string[] ApplicationGroupReference { get => WorkspaceBody.ApplicationGroupReference ?? null /* arrayOf */; set => WorkspaceBody.ApplicationGroupReference = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => WorkspaceBody.Description ?? null; set => WorkspaceBody.Description = value; } + + /// Friendly name of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => WorkspaceBody.FriendlyName ?? null; set => WorkspaceBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The identity type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The identity type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType IdentityType { get => WorkspaceBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.ResourceIdentityType)""); set => WorkspaceBody.IdentityType = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are + /// a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(string) })] + public string Kind { get => WorkspaceBody.Kind ?? null; set => WorkspaceBody.Kind = value; } + + /// The geo-location where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => WorkspaceBody.Location ?? null; set => WorkspaceBody.Location = value; } + + /// + /// The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another + /// Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template + /// since it is managed by another resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.", + SerializedName = @"managedBy", + PossibleTypes = new [] { typeof(string) })] + public string ManagedBy { get => WorkspaceBody.ManagedBy ?? null; set => WorkspaceBody.ManagedBy = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("WorkspaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// A user defined name of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A user defined name of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A user defined name of the 3rd Party Artifact that is being procured.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PlanName { get => WorkspaceBody.PlanName ?? null; set => WorkspaceBody.PlanName = value; } + + /// + /// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at + /// the time of Data Market onboarding. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. ", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string PlanProduct { get => WorkspaceBody.PlanProduct ?? null; set => WorkspaceBody.PlanProduct = value; } + + /// + /// A publisher provided promotion code as provisioned in Data Market for the said product/artifact. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A publisher provided promotion code as provisioned in Data Market for the said product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A publisher provided promotion code as provisioned in Data Market for the said product/artifact.", + SerializedName = @"promotionCode", + PossibleTypes = new [] { typeof(string) })] + public string PlanPromotionCode { get => WorkspaceBody.PlanPromotionCode ?? null; set => WorkspaceBody.PlanPromotionCode = value; } + + /// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string PlanPublisher { get => WorkspaceBody.PlanPublisher ?? null; set => WorkspaceBody.PlanPublisher = value; } + + /// The version of the desired product/artifact. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the desired product/artifact.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the desired product/artifact.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string PlanVersion { get => WorkspaceBody.PlanVersion ?? null; set => WorkspaceBody.PlanVersion = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only + /// be accessed via private endpoints + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled allows this resource to be accessed from both public and private networks, Disabled allows this resource to only be accessed via private endpoints", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => WorkspaceBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => WorkspaceBody.PublicNetworkAccess = 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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the + /// resource this may be omitted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => WorkspaceBody.SkuCapacity ?? default(int); set => WorkspaceBody.SkuCapacity = value; } + + /// + /// If the service has different generations of hardware, for the same SKU, then that can be captured here. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "If the service has different generations of hardware, for the same SKU, then that can be captured here.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"If the service has different generations of hardware, for the same SKU, then that can be captured here.", + SerializedName = @"family", + PossibleTypes = new [] { typeof(string) })] + public string SkuFamily { get => WorkspaceBody.SkuFamily ?? null; set => WorkspaceBody.SkuFamily = value; } + + /// The name of the SKU. Ex - P3. It is typically a letter+number code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the SKU. Ex - P3. It is typically a letter+number code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the SKU. Ex - P3. It is typically a letter+number code", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => WorkspaceBody.SkuName ?? null; set => WorkspaceBody.SkuName = value; } + + /// + /// The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. ", + SerializedName = @"size", + PossibleTypes = new [] { typeof(string) })] + public string SkuSize { get => WorkspaceBody.SkuSize ?? null; set => WorkspaceBody.SkuSize = value; } + + /// + /// This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required + /// on a PUT. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier SkuTier { get => WorkspaceBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SkuTier)""); set => WorkspaceBody.SkuTier = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api10.IResourceModelWithAllowedPropertySetTags Tag { get => WorkspaceBody.Tag ?? null /* object */; set => WorkspaceBody.Tag = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace _workspaceBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.Workspace(); + + /// Represents a Workspace definition. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace WorkspaceBody { get => this._workspaceBody; set => this._workspaceBody = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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 NewAzDesktopVirtualizationApiWorkspace_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'WorkspacesCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, WorkspaceBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=WorkspaceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_Delete.cs new file mode 100644 index 000000000000..5d225dc134f0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_Delete.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an applicationGroup. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiApplicationGroup_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an applicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiApplicationGroup_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationGroupsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiApplicationGroup_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e4e1317d87b1 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an applicationGroup. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an applicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationGroupsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationGroupsDeleteViaIdentity(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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationGroupsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzDesktopVirtualizationApiApplicationGroup_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_Delete.cs new file mode 100644 index 000000000000..86150425ee84 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_Delete.cs @@ -0,0 +1,453 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an application. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiApplication_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiApplication_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _groupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string GroupName { get => this._groupName; set => this._groupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application within the specified application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application within the specified application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application within the specified application group", + SerializedName = @"applicationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsDelete(SubscriptionId, ResourceGroupName, GroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,GroupName=GroupName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiApplication_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, 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, GroupName=GroupName, 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity.cs new file mode 100644 index 000000000000..ae44e1e5500d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an application. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiApplication_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationsDeleteViaIdentity(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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, InputObject.ApplicationName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiApplication_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_Delete.cs new file mode 100644 index 000000000000..fcde1aa092fa --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_Delete.cs @@ -0,0 +1,452 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a host pool. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiHostPool_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiHostPool_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to delete sessionHost. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to delete sessionHost.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to delete sessionHost.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("HostPoolName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsDelete(SubscriptionId, ResourceGroupName, Name, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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,Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiHostPool_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity.cs new file mode 100644 index 000000000000..cbd148136f67 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a host pool. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiHostPool_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to delete sessionHost. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to delete sessionHost.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to delete sessionHost.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsDeleteViaIdentity(InputObject.Id, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiHostPool_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_Delete.cs new file mode 100644 index 000000000000..2683d9fd6f8e --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_Delete.cs @@ -0,0 +1,454 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an MSIX Package. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiMsixPackage_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiMsixPackage_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _fullName; + + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The version specific package full name of the MSIX package within specified hostpool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The version specific package full name of the MSIX package within specified hostpool", + SerializedName = @"msixPackageFullName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("MsixPackageFullName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string FullName { get => this._fullName; set => this._fullName = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixPackagesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesDelete(SubscriptionId, ResourceGroupName, HostPoolName, FullName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,FullName=FullName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiMsixPackage_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity.cs new file mode 100644 index 000000000000..031dec345000 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove an MSIX Package. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove an MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixPackagesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MsixPackagesDeleteViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.MsixPackageFullName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.MsixPackageFullName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MsixPackagesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.MsixPackageFullName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiMsixPackage_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete.cs new file mode 100644 index 000000000000..5b31ea0fb47f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete.cs @@ -0,0 +1,453 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a connection. + /// + /// [OpenAPI] DeleteByHostPool=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiPrivateEndpointConnection_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection associated with the Azure resource + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection associated with the Azure resource")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection associated with the Azure resource", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDeleteByHostPool' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsDeleteByHostPool(SubscriptionId, ResourceGroupName, HostPoolName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, 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, HostPoolName=HostPoolName, 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1.cs new file mode 100644 index 000000000000..686ffe3ca1c4 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1.cs @@ -0,0 +1,453 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a connection. + /// + /// [OpenAPI] DeleteByWorkspace=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiPrivateEndpointConnection_Delete1", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection associated with the Azure resource + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection associated with the Azure resource")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection associated with the Azure resource", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _workspaceName; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string WorkspaceName { get => this._workspaceName; set => this._workspaceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDeleteByWorkspace' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsDeleteByWorkspace(SubscriptionId, ResourceGroupName, WorkspaceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,WorkspaceName=WorkspaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_Delete1() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, WorkspaceName=WorkspaceName, 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, WorkspaceName=WorkspaceName, 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e91ac98419db --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a connection. + /// + /// [OpenAPI] DeleteByHostPool=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDeleteByHostPool' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsDeleteByHostPoolViaIdentity(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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsDeleteByHostPool(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1.cs new file mode 100644 index 000000000000..2fb8f4c11ba3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a connection. + /// + /// [OpenAPI] DeleteByWorkspace=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDeleteByWorkspace' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsDeleteByWorkspaceViaIdentity(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.WorkspaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.WorkspaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsDeleteByWorkspace(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.WorkspaceName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiPrivateEndpointConnection_DeleteViaIdentity1() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_Delete.cs new file mode 100644 index 000000000000..226864bdda5f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_Delete.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a scaling plan. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiScalingPlan_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiScalingPlan_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the scaling plan.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the scaling plan.", + SerializedName = @"scalingPlanName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScalingPlanName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScalingPlansDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiScalingPlan_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity.cs new file mode 100644 index 000000000000..b853a8869315 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a scaling plan. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScalingPlansDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScalingPlansDeleteViaIdentity(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.ScalingPlanName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScalingPlanName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScalingPlansDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ScalingPlanName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiScalingPlan_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_Delete.cs new file mode 100644 index 000000000000..670063202b48 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_Delete.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a SessionHost. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiSessionHost_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a SessionHost.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiSessionHost_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to force sessionHost deletion even when userSession exists. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to force sessionHost deletion even when userSession exists.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to force sessionHost deletion even when userSession exists.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SessionHostName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SessionHostsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SessionHostsDelete(SubscriptionId, ResourceGroupName, HostPoolName, Name, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,Name=Name,Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiSessionHost_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, Name=Name, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, Name=Name, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity.cs new file mode 100644 index 000000000000..15761b5b3a95 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a SessionHost. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiSessionHost_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a SessionHost.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to force sessionHost deletion even when userSession exists. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to force sessionHost deletion even when userSession exists.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to force sessionHost deletion even when userSession exists.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SessionHostsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SessionHostsDeleteViaIdentity(InputObject.Id, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SessionHostsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiSessionHost_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_Delete.cs new file mode 100644 index 000000000000..f98fe0894d1f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_Delete.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a userSession. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiUserSession_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiUserSession_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to login off userSession. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to login off userSession.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to login off userSession.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private string _id; + + /// The name of the user session within the specified session host + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the user session within the specified session host")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("UserSessionId")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string Id { get => this._id; set => this._id = 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsDelete(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, Id, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName,Id=Id,Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiUserSession_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, Id=Id, Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity.cs new file mode 100644 index 000000000000..1515c589b4fb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity.cs @@ -0,0 +1,441 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a userSession. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiUserSession_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a userSession.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private global::System.Management.Automation.SwitchParameter _force; + + /// Force flag to login off userSession. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Force flag to login off userSession.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Force flag to login off userSession.", + SerializedName = @"force", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Query)] + public global::System.Management.Automation.SwitchParameter Force { get => this._force; set => this._force = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UserSessionsDeleteViaIdentity(InputObject.Id, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.UserSessionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.UserSessionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UserSessionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, InputObject.UserSessionId ?? null, this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?), onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiUserSession_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Force=this.InvocationInformation.BoundParameters.ContainsKey("Force") ? Force : default(global::System.Management.Automation.SwitchParameter?) }) + { + 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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_Delete.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_Delete.cs new file mode 100644 index 000000000000..fe94b4609e4a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_Delete.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a workspace. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiWorkspace_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiWorkspace_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("WorkspaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'WorkspacesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiWorkspace_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity.cs new file mode 100644 index 000000000000..910682434392 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Remove a workspace. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzDesktopVirtualizationApiWorkspace_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Remove a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'WorkspacesDelete' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.WorkspacesDeleteViaIdentity(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.WorkspaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.WorkspaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.WorkspacesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.WorkspaceName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzDesktopVirtualizationApiWorkspace_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_Send.cs b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_Send.cs new file mode 100644 index 000000000000..91f926bddeb5 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_Send.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Send a message to a user. + /// + /// [OpenAPI] SendMessage=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Send, @"AzDesktopVirtualizationApiUserSessionMessage_Send", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Send a message to a user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class SendAzDesktopVirtualizationApiUserSessionMessage_Send : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage _sendMessage; + + /// Represents message sent to a UserSession. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents message sent to a UserSession.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents message sent to a UserSession.", + SerializedName = @"sendMessage", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage SendMessage { get => this._sendMessage; set => this._sendMessage = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _userSessionId; + + /// The name of the user session within the specified session host + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the user session within the specified session host")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string UserSessionId { get => this._userSessionId; set => this._userSessionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsSendMessage' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsSendMessage(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, UserSessionId, SendMessage, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName,UserSessionId=UserSessionId,body=SendMessage}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public SendAzDesktopVirtualizationApiUserSessionMessage_Send() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, UserSessionId=UserSessionId, body=SendMessage }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, UserSessionId=UserSessionId, body=SendMessage }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded.cs new file mode 100644 index 000000000000..24278221f126 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded.cs @@ -0,0 +1,459 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Send a message to a user. + /// + /// [OpenAPI] SendMessage=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Send, @"AzDesktopVirtualizationApiUserSessionMessage_SendExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Send a message to a user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Body of message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Body of message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Body of message.", + SerializedName = @"messageBody", + PossibleTypes = new [] { typeof(string) })] + public string MessageBody { get => SendMessageBody.MessageBody ?? null; set => SendMessageBody.MessageBody = value; } + + /// Title of message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Title of message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title of message.", + SerializedName = @"messageTitle", + PossibleTypes = new [] { typeof(string) })] + public string MessageTitle { get => SendMessageBody.MessageTitle ?? null; set => SendMessageBody.MessageTitle = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage _sendMessageBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SendMessage(); + + /// Represents message sent to a UserSession. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage SendMessageBody { get => this._sendMessageBody; set => this._sendMessageBody = value; } + + /// Backing field for property. + private string _sessionHostName; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SessionHostName { get => this._sessionHostName; set => this._sessionHostName = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _userSessionId; + + /// The name of the user session within the specified session host + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the user session within the specified session host")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the user session within the specified session host", + SerializedName = @"userSessionId", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string UserSessionId { get => this._userSessionId; set => this._userSessionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsSendMessage' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.UserSessionsSendMessage(SubscriptionId, ResourceGroupName, HostPoolName, SessionHostName, UserSessionId, SendMessageBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,SessionHostName=SessionHostName,UserSessionId=UserSessionId,body=SendMessageBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public SendAzDesktopVirtualizationApiUserSessionMessage_SendExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, UserSessionId=UserSessionId, body=SendMessageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, SessionHostName=SessionHostName, UserSessionId=UserSessionId, body=SendMessageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity.cs b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity.cs new file mode 100644 index 000000000000..85f7518cfbeb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Send a message to a user. + /// + /// [OpenAPI] SendMessage=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Send, @"AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Send a message to a user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage _sendMessage; + + /// Represents message sent to a UserSession. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Represents message sent to a UserSession.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Represents message sent to a UserSession.", + SerializedName = @"sendMessage", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage SendMessage { get => this._sendMessage; set => this._sendMessage = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsSendMessage' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UserSessionsSendMessageViaIdentity(InputObject.Id, SendMessage, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.UserSessionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.UserSessionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UserSessionsSendMessage(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, InputObject.UserSessionId ?? null, SendMessage, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SendMessage}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SendMessage }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=SendMessage }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded.cs new file mode 100644 index 000000000000..20a779602918 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Send a message to a user. + /// + /// [OpenAPI] SendMessage=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}/userSessions/{userSessionId}/sendMessage" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommunications.Send, @"AzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Send a message to a user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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; } } + + /// Body of message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Body of message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Body of message.", + SerializedName = @"messageBody", + PossibleTypes = new [] { typeof(string) })] + public string MessageBody { get => SendMessageBody.MessageBody ?? null; set => SendMessageBody.MessageBody = value; } + + /// Title of message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Title of message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title of message.", + SerializedName = @"messageTitle", + PossibleTypes = new [] { typeof(string) })] + public string MessageTitle { get => SendMessageBody.MessageTitle ?? null; set => SendMessageBody.MessageTitle = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage _sendMessageBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SendMessage(); + + /// Represents message sent to a UserSession. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISendMessage SendMessageBody { get => this._sendMessageBody; set => this._sendMessageBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'UserSessionsSendMessage' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.UserSessionsSendMessageViaIdentity(InputObject.Id, SendMessageBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.UserSessionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.UserSessionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.UserSessionsSendMessage(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, InputObject.UserSessionId ?? null, SendMessageBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SendMessageBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public SendAzDesktopVirtualizationApiUserSessionMessage_SendViaIdentityExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SendMessageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=SendMessageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.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/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded.cs new file mode 100644 index 000000000000..33c9d5f3217b --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded.cs @@ -0,0 +1,440 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an applicationGroup. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiApplicationGroup_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an applicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch _applicationGroupBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatch(); + + /// ApplicationGroup properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch ApplicationGroupBody { get => this._applicationGroupBody; set => this._applicationGroupBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationGroupBody.Description ?? null; set => ApplicationGroupBody.Description = value; } + + /// Friendly name of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationGroupBody.FriendlyName ?? null; set => ApplicationGroupBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags Tag { get => ApplicationGroupBody.Tag ?? null /* object */; set => ApplicationGroupBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationGroupsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationGroupsUpdate(SubscriptionId, ResourceGroupName, Name, ApplicationGroupBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=ApplicationGroupBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..3e7b8782fe43 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an applicationGroup. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an applicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch _applicationGroupBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationGroupPatch(); + + /// ApplicationGroup properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatch ApplicationGroupBody { get => this._applicationGroupBody; set => this._applicationGroupBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of ApplicationGroup.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationGroupBody.Description ?? null; set => ApplicationGroupBody.Description = value; } + + /// Friendly name of ApplicationGroup. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of ApplicationGroup.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of ApplicationGroup.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationGroupBody.FriendlyName ?? null; set => ApplicationGroupBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroupPatchTags Tag { get => ApplicationGroupBody.Tag ?? null /* object */; set => ApplicationGroupBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationGroupsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationGroupsUpdateViaIdentity(InputObject.Id, ApplicationGroupBody, 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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationGroupsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, ApplicationGroupBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ApplicationGroupBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiApplicationGroup_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=ApplicationGroupBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationGroup + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded.cs new file mode 100644 index 000000000000..6798bed4ed88 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded.cs @@ -0,0 +1,558 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an application. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiApplication_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch _applicationBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatch(); + + /// Application properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch ApplicationBody { get => this._applicationBody; set => this._applicationBody = value; } + + /// Resource Type of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource Type of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType ApplicationType { get => ApplicationBody.ApplicationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType)""); set => ApplicationBody.ApplicationType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Command Line Arguments for Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Command Line Arguments for Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + public string CommandLineArgument { get => ApplicationBody.CommandLineArgument ?? null; set => ApplicationBody.CommandLineArgument = value; } + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get => ApplicationBody.CommandLineSetting ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting)""); set => ApplicationBody.CommandLineSetting = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationBody.Description ?? null; set => ApplicationBody.Description = value; } + + /// Specifies a path for the executable file for the application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies a path for the executable file for the application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => ApplicationBody.FilePath ?? null; set => ApplicationBody.FilePath = value; } + + /// Friendly name of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationBody.FriendlyName ?? null; set => ApplicationBody.FriendlyName = value; } + + /// Backing field for property. + private string _groupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationGroupName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string GroupName { get => this._groupName; set => this._groupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Index of the icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Index of the icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + public int IconIndex { get => ApplicationBody.IconIndex ?? default(int); set => ApplicationBody.IconIndex = value; } + + /// Path to icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + public string IconPath { get => ApplicationBody.IconPath ?? null; set => ApplicationBody.IconPath = 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Specifies the package application Id for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package application Id for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageApplicationId { get => ApplicationBody.MsixPackageApplicationId ?? null; set => ApplicationBody.MsixPackageApplicationId = value; } + + /// Specifies the package family name for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package family name for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageFamilyName { get => ApplicationBody.MsixPackageFamilyName ?? null; set => ApplicationBody.MsixPackageFamilyName = value; } + + /// Backing field for property. + private string _name; + + /// The name of the application within the specified application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application within the specified application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application within the specified application group", + SerializedName = @"applicationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies whether to show the RemoteApp program in the RD Web Access server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ShowInPortal { get => ApplicationBody.ShowInPortal ?? default(global::System.Management.Automation.SwitchParameter); set => ApplicationBody.ShowInPortal = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags Tag { get => ApplicationBody.Tag ?? null /* object */; set => ApplicationBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationsUpdate(SubscriptionId, ResourceGroupName, GroupName, Name, ApplicationBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,GroupName=GroupName,Name=Name,body=ApplicationBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiApplication_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, Name=Name, body=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, GroupName=GroupName, Name=Name, body=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..e70cdb5d3794 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded.cs @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an application. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/applications/{applicationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch _applicationBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ApplicationPatch(); + + /// Application properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatch ApplicationBody { get => this._applicationBody; set => this._applicationBody = value; } + + /// Resource Type of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource Type of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Type of Application.", + SerializedName = @"applicationType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType ApplicationType { get => ApplicationBody.ApplicationType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RemoteApplicationType)""); set => ApplicationBody.ApplicationType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Command Line Arguments for Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Command Line Arguments for Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command Line Arguments for Application.", + SerializedName = @"commandLineArguments", + PossibleTypes = new [] { typeof(string) })] + public string CommandLineArgument { get => ApplicationBody.CommandLineArgument ?? null; set => ApplicationBody.CommandLineArgument = value; } + + /// + /// Specifies whether this published application can be launched with command line arguments provided by the client, command + /// line arguments specified at publish time, or no command line arguments at all. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all.", + SerializedName = @"commandLineSetting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting CommandLineSetting { get => ApplicationBody.CommandLineSetting ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.CommandLineSetting)""); set => ApplicationBody.CommandLineSetting = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Application.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ApplicationBody.Description ?? null; set => ApplicationBody.Description = value; } + + /// Specifies a path for the executable file for the application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies a path for the executable file for the application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a path for the executable file for the application.", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => ApplicationBody.FilePath ?? null; set => ApplicationBody.FilePath = value; } + + /// Friendly name of Application. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Application.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ApplicationBody.FriendlyName ?? null; set => ApplicationBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Index of the icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Index of the icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Index of the icon.", + SerializedName = @"iconIndex", + PossibleTypes = new [] { typeof(int) })] + public int IconIndex { get => ApplicationBody.IconIndex ?? default(int); set => ApplicationBody.IconIndex = value; } + + /// Path to icon. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to icon.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to icon.", + SerializedName = @"iconPath", + PossibleTypes = new [] { typeof(string) })] + public string IconPath { get => ApplicationBody.IconPath ?? null; set => ApplicationBody.IconPath = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Specifies the package application Id for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package application Id for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package application Id for MSIX applications", + SerializedName = @"msixPackageApplicationId", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageApplicationId { get => ApplicationBody.MsixPackageApplicationId ?? null; set => ApplicationBody.MsixPackageApplicationId = value; } + + /// Specifies the package family name for MSIX applications + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies the package family name for MSIX applications")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies the package family name for MSIX applications", + SerializedName = @"msixPackageFamilyName", + PossibleTypes = new [] { typeof(string) })] + public string MsixPackageFamilyName { get => ApplicationBody.MsixPackageFamilyName ?? null; set => ApplicationBody.MsixPackageFamilyName = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Specifies whether to show the RemoteApp program in the RD Web Access server. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies whether to show the RemoteApp program in the RD Web Access server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies whether to show the RemoteApp program in the RD Web Access server.", + SerializedName = @"showInPortal", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ShowInPortal { get => ApplicationBody.ShowInPortal ?? default(global::System.Management.Automation.SwitchParameter); set => ApplicationBody.ShowInPortal = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplicationPatchTags Tag { get => ApplicationBody.Tag ?? null /* object */; set => ApplicationBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationsUpdateViaIdentity(InputObject.Id, ApplicationBody, 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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, InputObject.ApplicationName ?? null, ApplicationBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ApplicationBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiApplication_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=ApplicationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IApplication + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded.cs new file mode 100644 index 000000000000..23345d82825f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded.cs @@ -0,0 +1,453 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a desktop. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiDesktop_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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 _applicationGroupName; + + /// The name of the application group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application group", + SerializedName = @"applicationGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ApplicationGroupName { get => this._applicationGroupName; set => this._applicationGroupName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => DesktopBody.Description ?? null; set => DesktopBody.Description = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch _desktopBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatch(); + + /// Desktop properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch DesktopBody { get => this._desktopBody; set => this._desktopBody = value; } + + /// Friendly name of Desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => DesktopBody.FriendlyName ?? null; set => DesktopBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the desktop within the specified desktop group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the desktop within the specified desktop group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the desktop within the specified desktop group", + SerializedName = @"desktopName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DesktopName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags Tag { get => DesktopBody.Tag ?? null /* object */; set => DesktopBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DesktopsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DesktopsUpdate(SubscriptionId, ResourceGroupName, ApplicationGroupName, Name, DesktopBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ApplicationGroupName=ApplicationGroupName,Name=Name,body=DesktopBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiDesktop_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName, Name=Name, body=DesktopBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ApplicationGroupName=ApplicationGroupName, Name=Name, body=DesktopBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..7e64647fe32d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a desktop. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/applicationGroups/{applicationGroupName}/desktops/{desktopName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Desktop.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => DesktopBody.Description ?? null; set => DesktopBody.Description = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch _desktopBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.DesktopPatch(); + + /// Desktop properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatch DesktopBody { get => this._desktopBody; set => this._desktopBody = value; } + + /// Friendly name of Desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Desktop.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => DesktopBody.FriendlyName ?? null; set => DesktopBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktopPatchTags Tag { get => DesktopBody.Tag ?? null /* object */; set => DesktopBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DesktopsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DesktopsUpdateViaIdentity(InputObject.Id, DesktopBody, 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.ApplicationGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DesktopName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DesktopName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DesktopsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ApplicationGroupName ?? null, InputObject.DesktopName ?? null, DesktopBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DesktopBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzDesktopVirtualizationApiDesktop_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DesktopBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=DesktopBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IDesktop + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded.cs new file mode 100644 index 000000000000..894de2b1ec82 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded.cs @@ -0,0 +1,531 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Initiate update of a hostpool. + /// + /// [OpenAPI] Update=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/update" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiHostPoolPost_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Initiate update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate _hostPoolUpdateBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdate(); + + /// Represents properties for a hostpool update. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate HostPoolUpdateBody { get => this._hostPoolUpdateBody; set => this._hostPoolUpdateBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Grace period before logging off users in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Grace period before logging off users in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + public int ParameterLogOffDelaySecond { get => HostPoolUpdateBody.ParameterLogOffDelaySecond ?? default(int); set => HostPoolUpdateBody.ParameterLogOffDelaySecond = value; } + + /// Log off message sent to user for logoff. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log off message sent to user for logoff.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + public string ParameterLogOffMessage { get => HostPoolUpdateBody.ParameterLogOffMessage ?? null; set => HostPoolUpdateBody.ParameterLogOffMessage = value; } + + /// The alerts given to customers for hostpool update. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The alerts given to customers for hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] ParameterMaintenanceAlert { get => HostPoolUpdateBody.ParameterMaintenanceAlert ?? null /* arrayOf */; set => HostPoolUpdateBody.ParameterMaintenanceAlert = value; } + + /// The maximum virtual machines to be removed during hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The maximum virtual machines to be removed during hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + public int ParameterMaxVmsRemovedDuringUpdate { get => HostPoolUpdateBody.ParameterMaxVmsRemovedDuringUpdate ?? default(int); set => HostPoolUpdateBody.ParameterMaxVmsRemovedDuringUpdate = value; } + + /// Whether to save original disk. False by default. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether to save original disk. False by default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ParameterSaveOriginalDisk { get => HostPoolUpdateBody.ParameterSaveOriginalDisk ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolUpdateBody.ParameterSaveOriginalDisk = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The time the hostpool update is schedule for. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The time the hostpool update is schedule for.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ScheduledTime { get => HostPoolUpdateBody.ScheduledTime ?? default(global::System.DateTime); set => HostPoolUpdateBody.ScheduledTime = value; } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + /// Must be set if useLocalTime is true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + public string ScheduledTimeZone { get => HostPoolUpdateBody.ScheduledTimeZone ?? null; set => HostPoolUpdateBody.ScheduledTimeZone = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated.", + SerializedName = @"validateOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ValidateOnly { get => HostPoolUpdateBody.ValidateOnly ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolUpdateBody.ValidateOnly = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded Clone() + { + var clone = new UpdateAzDesktopVirtualizationApiHostPoolPost_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.HostPoolUpdateBody = this.HostPoolUpdateBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.HostPoolName = this.HostPoolName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolPostUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolPostUpdate(SubscriptionId, ResourceGroupName, HostPoolName, HostPoolUpdateBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,body=HostPoolUpdateBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolUpdateBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, body=HostPoolUpdateBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..a0e8b18024c3 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Initiate update of a hostpool. + /// + /// [OpenAPI] Update=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/update" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Initiate update of a hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate _hostPoolUpdateBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolUpdate(); + + /// Represents properties for a hostpool update. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolUpdate HostPoolUpdateBody { get => this._hostPoolUpdateBody; set => this._hostPoolUpdateBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Grace period before logging off users in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Grace period before logging off users in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Grace period before logging off users in seconds.", + SerializedName = @"logOffDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + public int ParameterLogOffDelaySecond { get => HostPoolUpdateBody.ParameterLogOffDelaySecond ?? default(int); set => HostPoolUpdateBody.ParameterLogOffDelaySecond = value; } + + /// Log off message sent to user for logoff. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Log off message sent to user for logoff.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Log off message sent to user for logoff.", + SerializedName = @"logOffMessage", + PossibleTypes = new [] { typeof(string) })] + public string ParameterLogOffMessage { get => HostPoolUpdateBody.ParameterLogOffMessage ?? null; set => HostPoolUpdateBody.ParameterLogOffMessage = value; } + + /// The alerts given to customers for hostpool update. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The alerts given to customers for hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The alerts given to customers for hostpool update.", + SerializedName = @"maintenanceAlerts", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMaintenanceAlertsProperties[] ParameterMaintenanceAlert { get => HostPoolUpdateBody.ParameterMaintenanceAlert ?? null /* arrayOf */; set => HostPoolUpdateBody.ParameterMaintenanceAlert = value; } + + /// The maximum virtual machines to be removed during hostpool update. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The maximum virtual machines to be removed during hostpool update.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The maximum virtual machines to be removed during hostpool update.", + SerializedName = @"maxVMsRemovedDuringUpdate", + PossibleTypes = new [] { typeof(int) })] + public int ParameterMaxVmsRemovedDuringUpdate { get => HostPoolUpdateBody.ParameterMaxVmsRemovedDuringUpdate ?? default(int); set => HostPoolUpdateBody.ParameterMaxVmsRemovedDuringUpdate = value; } + + /// Whether to save original disk. False by default. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether to save original disk. False by default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to save original disk. False by default.", + SerializedName = @"saveOriginalDisk", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ParameterSaveOriginalDisk { get => HostPoolUpdateBody.ParameterSaveOriginalDisk ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolUpdateBody.ParameterSaveOriginalDisk = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The time the hostpool update is schedule for. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The time the hostpool update is schedule for.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the hostpool update is schedule for.", + SerializedName = @"time", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ScheduledTime { get => HostPoolUpdateBody.ScheduledTime ?? default(global::System.DateTime); set => HostPoolUpdateBody.ScheduledTime = value; } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + /// Must be set if useLocalTime is true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + public string ScheduledTimeZone { get => HostPoolUpdateBody.ScheduledTimeZone ?? null; set => HostPoolUpdateBody.ScheduledTimeZone = value; } + + /// + /// When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"When validateOnly is true this will run validations and return warnings and errors if any, hostpool will not be updated.", + SerializedName = @"validateOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ValidateOnly { get => HostPoolUpdateBody.ValidateOnly ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolUpdateBody.ValidateOnly = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets.UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzDesktopVirtualizationApiHostPoolPost_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.HostPoolUpdateBody = this.HostPoolUpdateBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolPostUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolPostUpdateViaIdentity(InputObject.Id, HostPoolUpdateBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolPostUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, HostPoolUpdateBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolUpdateBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiHostPoolPost_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolUpdateBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=HostPoolUpdateBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded.cs new file mode 100644 index 000000000000..955500a48047 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded.cs @@ -0,0 +1,717 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a host pool. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiHostPool_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Custom rdp property of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Custom rdp property of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + public string CustomRdpProperty { get => HostPoolBody.CustomRdpProperty ?? null; set => HostPoolBody.CustomRdpProperty = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => HostPoolBody.Description ?? null; set => HostPoolBody.Description = value; } + + /// Friendly name of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => HostPoolBody.FriendlyName ?? null; set => HostPoolBody.FriendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch _hostPoolBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatch(); + + /// HostPool properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch HostPoolBody { get => this._hostPoolBody; set => this._hostPoolBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { 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 type of the load balancer. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the load balancer.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get => HostPoolBody.LoadBalancerType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType)""); set => HostPoolBody.LoadBalancerType = value; } + + /// The max session limit of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The max session limit of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + public int MaxSessionLimit { get => HostPoolBody.MaxSessionLimit ?? default(int); set => HostPoolBody.MaxSessionLimit = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("HostPoolName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// PersonalDesktopAssignment type for HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "PersonalDesktopAssignment type for HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType PersonalDesktopAssignmentType { get => HostPoolBody.PersonalDesktopAssignmentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType)""); set => HostPoolBody.PersonalDesktopAssignmentType = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of preferred application group type, default to Desktop Application Group")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get => HostPoolBody.PreferredAppGroupType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType)""); set => HostPoolBody.PreferredAppGroupType = value; } + + /// Day of the week. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Day of the week.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek PrimaryWindowDayOfWeek { get => HostPoolBody.PrimaryWindowDayOfWeek ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); set => HostPoolBody.PrimaryWindowDayOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int PrimaryWindowHour { get => HostPoolBody.PrimaryWindowHour ?? default(int); set => HostPoolBody.PrimaryWindowHour = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Enabled to allow this resource to be access from the public network + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled to allow this resource to be access from the public network")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => HostPoolBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => HostPoolBody.PublicNetworkAccess = value; } + + /// Expiration time of registration token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of registration token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime RegistrationInfoExpirationTime { get => HostPoolBody.RegistrationInfoExpirationTime ?? default(global::System.DateTime); set => HostPoolBody.RegistrationInfoExpirationTime = value; } + + /// The type of resetting the token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of resetting the token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation RegistrationInfoRegistrationTokenOperation { get => HostPoolBody.RegistrationInfoRegistrationTokenOperation ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); set => HostPoolBody.RegistrationInfoRegistrationTokenOperation = 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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The ring number of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ring number of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + public int Ring { get => HostPoolBody.Ring ?? default(int); set => HostPoolBody.Ring = value; } + + /// Set of days of the week on which this schedule is active. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set of days of the week on which this schedule is active.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + public string[] SecondaryWindowDaysOfWeek { get => HostPoolBody.SecondaryWindowDaysOfWeek ?? null /* arrayOf */; set => HostPoolBody.SecondaryWindowDaysOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int SecondaryWindowHour { get => HostPoolBody.SecondaryWindowHour ?? default(int); set => HostPoolBody.SecondaryWindowHour = value; } + + /// The type of maintenance for session host components. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of maintenance for session host components.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType SessionHostComponentUpdateConfigurationMaintenanceType { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType = value; } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + /// Must be set if useLocalTime is true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ?? null; set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = value; } + + /// Whether to use localTime of the virtual machine. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether to use localTime of the virtual machine.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = value; } + + /// The session host configurations of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The session host configurations of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => HostPoolBody.SessionHostConfiguration ?? null /* object */; set => HostPoolBody.SessionHostConfiguration = value; } + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ClientId for the registered Relying Party used to issue WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientId { get => HostPoolBody.SsoClientId ?? null; set => HostPoolBody.SsoClientId = value; } + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to Azure KeyVault storing the secret used for communication to ADFS.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientSecretKeyVaultPath { get => HostPoolBody.SsoClientSecretKeyVaultPath ?? null; set => HostPoolBody.SsoClientSecretKeyVaultPath = value; } + + /// The type of single sign on Secret Type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of single sign on Secret Type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType SsoSecretType { get => HostPoolBody.SsoSecretType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType)""); set => HostPoolBody.SsoSecretType = value; } + + /// URL to customer ADFS server for signing WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URL to customer ADFS server for signing WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + public string SsoadfsAuthority { get => HostPoolBody.SsoadfsAuthority ?? null; set => HostPoolBody.SsoadfsAuthority = value; } + + /// The flag to turn on/off StartVMOnConnect feature. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The flag to turn on/off StartVMOnConnect feature.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter StartVMOnConnect { get => HostPoolBody.StartVMOnConnect ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.StartVMOnConnect = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags Tag { get => HostPoolBody.Tag ?? null /* object */; set => HostPoolBody.Tag = value; } + + /// VM template for sessionhosts configuration within hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "VM template for sessionhosts configuration within hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + public string VMTemplate { get => HostPoolBody.VMTemplate ?? null; set => HostPoolBody.VMTemplate = value; } + + /// Is validation environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Is validation environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ValidationEnvironment { get => HostPoolBody.ValidationEnvironment ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.ValidationEnvironment = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.HostPoolsUpdate(SubscriptionId, ResourceGroupName, Name, HostPoolBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=HostPoolBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiHostPool_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..d7c08e78323d --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded.cs @@ -0,0 +1,699 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a host pool. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a host pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// Custom rdp property of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Custom rdp property of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Custom rdp property of HostPool.", + SerializedName = @"customRdpProperty", + PossibleTypes = new [] { typeof(string) })] + public string CustomRdpProperty { get => HostPoolBody.CustomRdpProperty ?? null; set => HostPoolBody.CustomRdpProperty = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of HostPool.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => HostPoolBody.Description ?? null; set => HostPoolBody.Description = value; } + + /// Friendly name of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of HostPool.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => HostPoolBody.FriendlyName ?? null; set => HostPoolBody.FriendlyName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch _hostPoolBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.HostPoolPatch(); + + /// HostPool properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatch HostPoolBody { get => this._hostPoolBody; set => this._hostPoolBody = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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 type of the load balancer. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the load balancer.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the load balancer.", + SerializedName = @"loadBalancerType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType LoadBalancerType { get => HostPoolBody.LoadBalancerType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.LoadBalancerType)""); set => HostPoolBody.LoadBalancerType = value; } + + /// The max session limit of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The max session limit of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The max session limit of HostPool.", + SerializedName = @"maxSessionLimit", + PossibleTypes = new [] { typeof(int) })] + public int MaxSessionLimit { get => HostPoolBody.MaxSessionLimit ?? default(int); set => HostPoolBody.MaxSessionLimit = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// PersonalDesktopAssignment type for HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "PersonalDesktopAssignment type for HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"PersonalDesktopAssignment type for HostPool.", + SerializedName = @"personalDesktopAssignmentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType PersonalDesktopAssignmentType { get => HostPoolBody.PersonalDesktopAssignmentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PersonalDesktopAssignmentType)""); set => HostPoolBody.PersonalDesktopAssignmentType = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// The type of preferred application group type, default to Desktop Application Group + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of preferred application group type, default to Desktop Application Group")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of preferred application group type, default to Desktop Application Group", + SerializedName = @"preferredAppGroupType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType PreferredAppGroupType { get => HostPoolBody.PreferredAppGroupType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PreferredAppGroupType)""); set => HostPoolBody.PreferredAppGroupType = value; } + + /// Day of the week. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Day of the week.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Day of the week.", + SerializedName = @"dayOfWeek", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek PrimaryWindowDayOfWeek { get => HostPoolBody.PrimaryWindowDayOfWeek ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.DayOfWeek)""); set => HostPoolBody.PrimaryWindowDayOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int PrimaryWindowHour { get => HostPoolBody.PrimaryWindowHour ?? default(int); set => HostPoolBody.PrimaryWindowHour = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Enabled to allow this resource to be access from the public network + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled to allow this resource to be access from the public network")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => HostPoolBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => HostPoolBody.PublicNetworkAccess = value; } + + /// Expiration time of registration token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of registration token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of registration token.", + SerializedName = @"expirationTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime RegistrationInfoExpirationTime { get => HostPoolBody.RegistrationInfoExpirationTime ?? default(global::System.DateTime); set => HostPoolBody.RegistrationInfoExpirationTime = value; } + + /// The type of resetting the token. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of resetting the token.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of resetting the token.", + SerializedName = @"registrationTokenOperation", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation RegistrationInfoRegistrationTokenOperation { get => HostPoolBody.RegistrationInfoRegistrationTokenOperation ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.RegistrationTokenOperation)""); set => HostPoolBody.RegistrationInfoRegistrationTokenOperation = value; } + + /// The ring number of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ring number of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ring number of HostPool.", + SerializedName = @"ring", + PossibleTypes = new [] { typeof(int) })] + public int Ring { get => HostPoolBody.Ring ?? default(int); set => HostPoolBody.Ring = value; } + + /// Set of days of the week on which this schedule is active. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set of days of the week on which this schedule is active.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set of days of the week on which this schedule is active.", + SerializedName = @"daysOfWeek", + PossibleTypes = new [] { typeof(string) })] + public string[] SecondaryWindowDaysOfWeek { get => HostPoolBody.SecondaryWindowDaysOfWeek ?? null /* arrayOf */; set => HostPoolBody.SecondaryWindowDaysOfWeek = value; } + + /// The update start hour of the day. (0 - 23) + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The update start hour of the day. (0 - 23)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The update start hour of the day. (0 - 23)", + SerializedName = @"hour", + PossibleTypes = new [] { typeof(int) })] + public int SecondaryWindowHour { get => HostPoolBody.SecondaryWindowHour ?? default(int); set => HostPoolBody.SecondaryWindowHour = value; } + + /// The type of maintenance for session host components. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of maintenance for session host components.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of maintenance for session host components.", + SerializedName = @"maintenanceType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType SessionHostComponentUpdateConfigurationMaintenanceType { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SessionHostComponentUpdateType)""); set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceType = value; } + + /// + /// Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. + /// Must be set if useLocalTime is true. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time zone for maintenance as defined in https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.findsystemtimezonebyidview=net-5.0. Must be set if useLocalTime is true.", + SerializedName = @"maintenanceWindowTimeZone", + PossibleTypes = new [] { typeof(string) })] + public string SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone { get => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone ?? null; set => HostPoolBody.SessionHostComponentUpdateConfigurationMaintenanceWindowTimeZone = value; } + + /// Whether to use localTime of the virtual machine. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether to use localTime of the virtual machine.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether to use localTime of the virtual machine.", + SerializedName = @"useSessionHostLocalTime", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter SessionHostComponentUpdateConfigurationUseSessionHostLocalTime { get => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.SessionHostComponentUpdateConfigurationUseSessionHostLocalTime = value; } + + /// The session host configurations of HostPool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The session host configurations of HostPool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The session host configurations of HostPool.", + SerializedName = @"sessionHostConfiguration", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostConfigurationProperties SessionHostConfiguration { get => HostPoolBody.SessionHostConfiguration ?? null /* object */; set => HostPoolBody.SessionHostConfiguration = value; } + + /// ClientId for the registered Relying Party used to issue WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "ClientId for the registered Relying Party used to issue WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ClientId for the registered Relying Party used to issue WVD SSO certificates.", + SerializedName = @"ssoClientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientId { get => HostPoolBody.SsoClientId ?? null; set => HostPoolBody.SsoClientId = value; } + + /// Path to Azure KeyVault storing the secret used for communication to ADFS. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Path to Azure KeyVault storing the secret used for communication to ADFS.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to Azure KeyVault storing the secret used for communication to ADFS.", + SerializedName = @"ssoClientSecretKeyVaultPath", + PossibleTypes = new [] { typeof(string) })] + public string SsoClientSecretKeyVaultPath { get => HostPoolBody.SsoClientSecretKeyVaultPath ?? null; set => HostPoolBody.SsoClientSecretKeyVaultPath = value; } + + /// The type of single sign on Secret Type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of single sign on Secret Type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of single sign on Secret Type.", + SerializedName = @"ssoSecretType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType SsoSecretType { get => HostPoolBody.SsoSecretType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.SsoSecretType)""); set => HostPoolBody.SsoSecretType = value; } + + /// URL to customer ADFS server for signing WVD SSO certificates. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URL to customer ADFS server for signing WVD SSO certificates.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL to customer ADFS server for signing WVD SSO certificates.", + SerializedName = @"ssoadfsAuthority", + PossibleTypes = new [] { typeof(string) })] + public string SsoadfsAuthority { get => HostPoolBody.SsoadfsAuthority ?? null; set => HostPoolBody.SsoadfsAuthority = value; } + + /// The flag to turn on/off StartVMOnConnect feature. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The flag to turn on/off StartVMOnConnect feature.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The flag to turn on/off StartVMOnConnect feature.", + SerializedName = @"startVMOnConnect", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter StartVMOnConnect { get => HostPoolBody.StartVMOnConnect ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.StartVMOnConnect = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPoolPatchTags Tag { get => HostPoolBody.Tag ?? null /* object */; set => HostPoolBody.Tag = value; } + + /// VM template for sessionhosts configuration within hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "VM template for sessionhosts configuration within hostpool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"VM template for sessionhosts configuration within hostpool.", + SerializedName = @"vmTemplate", + PossibleTypes = new [] { typeof(string) })] + public string VMTemplate { get => HostPoolBody.VMTemplate ?? null; set => HostPoolBody.VMTemplate = value; } + + /// Is validation environment. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Is validation environment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Is validation environment.", + SerializedName = @"validationEnvironment", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ValidationEnvironment { get => HostPoolBody.ValidationEnvironment ?? default(global::System.Management.Automation.SwitchParameter); set => HostPoolBody.ValidationEnvironment = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'HostPoolsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.HostPoolsUpdateViaIdentity(InputObject.Id, HostPoolBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.HostPoolsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, HostPoolBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzDesktopVirtualizationApiHostPool_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=HostPoolBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IHostPool + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded.cs new file mode 100644 index 000000000000..f322cb462181 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded.cs @@ -0,0 +1,454 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an MSIX Package. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiMsixPackage_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Display name for MSIX Package. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Display name for MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name for MSIX Package.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => MsixPackageBody.DisplayName ?? null; set => MsixPackageBody.DisplayName = value; } + + /// Backing field for property. + private string _fullName; + + /// + /// The version specific package full name of the MSIX package within specified hostpool + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The version specific package full name of the MSIX package within specified hostpool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The version specific package full name of the MSIX package within specified hostpool", + SerializedName = @"msixPackageFullName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("MsixPackageFullName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string FullName { get => this._fullName; set => this._fullName = value; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Set a version of the package to be active across hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set a version of the package to be active across hostpool. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set a version of the package to be active across hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsActive { get => MsixPackageBody.IsActive ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsActive = value; } + + /// Set Registration mode. Regular or Delayed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set Registration mode. Regular or Delayed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set Registration mode. Regular or Delayed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsRegularRegistration { get => MsixPackageBody.IsRegularRegistration ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsRegularRegistration = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch _msixPackageBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatch(); + + /// MSIX Package properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch MsixPackageBody { get => this._msixPackageBody; set => this._msixPackageBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixPackagesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MsixPackagesUpdate(SubscriptionId, ResourceGroupName, HostPoolName, FullName, MsixPackageBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,FullName=FullName,body=MsixPackageBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiMsixPackage_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName, body=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, FullName=FullName, body=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..530bfe643f37 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update an MSIX Package. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/msixPackages/{msixPackageFullName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update an MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Display name for MSIX Package. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Display name for MSIX Package.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name for MSIX Package.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => MsixPackageBody.DisplayName ?? null; set => MsixPackageBody.DisplayName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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; } } + + /// Set a version of the package to be active across hostpool. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set a version of the package to be active across hostpool. ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set a version of the package to be active across hostpool. ", + SerializedName = @"isActive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsActive { get => MsixPackageBody.IsActive ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsActive = value; } + + /// Set Registration mode. Regular or Delayed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set Registration mode. Regular or Delayed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set Registration mode. Regular or Delayed.", + SerializedName = @"isRegularRegistration", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter IsRegularRegistration { get => MsixPackageBody.IsRegularRegistration ?? default(global::System.Management.Automation.SwitchParameter); set => MsixPackageBody.IsRegularRegistration = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch _msixPackageBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.MsixPackagePatch(); + + /// MSIX Package properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackagePatch MsixPackageBody { get => this._msixPackageBody; set => this._msixPackageBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MsixPackagesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MsixPackagesUpdateViaIdentity(InputObject.Id, MsixPackageBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.MsixPackageFullName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.MsixPackageFullName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MsixPackagesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.MsixPackageFullName ?? null, MsixPackageBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixPackageBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiMsixPackage_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=MsixPackageBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IMsixPackage + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded.cs new file mode 100644 index 000000000000..6eaaa64ea5a0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a scaling plan. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiScalingPlan_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ScalingPlanBody.Description ?? null; set => ScalingPlanBody.Description = value; } + + /// Exclusion tag for scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exclusion tag for scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + public string ExclusionTag { get => ScalingPlanBody.ExclusionTag ?? null; set => ScalingPlanBody.ExclusionTag = value; } + + /// User friendly name of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly name of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ScalingPlanBody.FriendlyName ?? null; set => ScalingPlanBody.FriendlyName = value; } + + /// List of ScalingHostPoolReference definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingHostPoolReference definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => ScalingPlanBody.HostPoolReference ?? null /* arrayOf */; set => ScalingPlanBody.HostPoolReference = value; } + + /// HostPool type for desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "HostPool type for desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => ScalingPlanBody.HostPoolType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType)""); set => ScalingPlanBody.HostPoolType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the scaling plan.")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the scaling plan.", + SerializedName = @"scalingPlanName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScalingPlanName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch _scalingPlanBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatch(); + + /// Scaling plan properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch ScalingPlanBody { get => this._scalingPlanBody; set => this._scalingPlanBody = value; } + + /// List of ScalingSchedule definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingSchedule definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => ScalingPlanBody.Schedule ?? null /* arrayOf */; set => ScalingPlanBody.Schedule = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags Tag { get => ScalingPlanBody.Tag ?? null /* object */; set => ScalingPlanBody.Tag = value; } + + /// Timezone of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Timezone of the scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + public string TimeZone { get => ScalingPlanBody.TimeZone ?? null; set => ScalingPlanBody.TimeZone = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScalingPlansUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScalingPlansUpdate(SubscriptionId, ResourceGroupName, Name, ScalingPlanBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=ScalingPlanBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiScalingPlan_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..7833cb2d5ba7 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded.cs @@ -0,0 +1,479 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a scaling plan. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/scalingPlans/{scalingPlanName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of scaling plan.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => ScalingPlanBody.Description ?? null; set => ScalingPlanBody.Description = value; } + + /// Exclusion tag for scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Exclusion tag for scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Exclusion tag for scaling plan.", + SerializedName = @"exclusionTag", + PossibleTypes = new [] { typeof(string) })] + public string ExclusionTag { get => ScalingPlanBody.ExclusionTag ?? null; set => ScalingPlanBody.ExclusionTag = value; } + + /// User friendly name of scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User friendly name of scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User friendly name of scaling plan.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => ScalingPlanBody.FriendlyName ?? null; set => ScalingPlanBody.FriendlyName = value; } + + /// List of ScalingHostPoolReference definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingHostPoolReference definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingHostPoolReference definitions.", + SerializedName = @"hostPoolReferences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingHostPoolReference[] HostPoolReference { get => ScalingPlanBody.HostPoolReference ?? null /* arrayOf */; set => ScalingPlanBody.HostPoolReference = value; } + + /// HostPool type for desktop. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "HostPool type for desktop.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HostPool type for desktop.", + SerializedName = @"hostPoolType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType HostPoolType { get => ScalingPlanBody.HostPoolType ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.HostPoolType)""); set => ScalingPlanBody.HostPoolType = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch _scalingPlanBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ScalingPlanPatch(); + + /// Scaling plan properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatch ScalingPlanBody { get => this._scalingPlanBody; set => this._scalingPlanBody = value; } + + /// List of ScalingSchedule definitions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of ScalingSchedule definitions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of ScalingSchedule definitions.", + SerializedName = @"schedules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingSchedule[] Schedule { get => ScalingPlanBody.Schedule ?? null /* arrayOf */; set => ScalingPlanBody.Schedule = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlanPatchTags Tag { get => ScalingPlanBody.Tag ?? null /* object */; set => ScalingPlanBody.Tag = value; } + + /// Timezone of the scaling plan. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Timezone of the scaling plan.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Timezone of the scaling plan.", + SerializedName = @"timeZone", + PossibleTypes = new [] { typeof(string) })] + public string TimeZone { get => ScalingPlanBody.TimeZone ?? null; set => ScalingPlanBody.TimeZone = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScalingPlansUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScalingPlansUpdateViaIdentity(InputObject.Id, ScalingPlanBody, 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.ScalingPlanName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScalingPlanName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScalingPlansUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ScalingPlanName ?? null, ScalingPlanBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScalingPlanBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiScalingPlan_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=ScalingPlanBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IScalingPlan + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded.cs new file mode 100644 index 000000000000..f33ece73985c --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded.cs @@ -0,0 +1,441 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a session host. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiSessionHost_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a session host.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Allow a new session. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allow a new session.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AllowNewSession { get => SessionHostBody.AllowNewSession ?? default(global::System.Management.Automation.SwitchParameter); set => SessionHostBody.AllowNewSession = value; } + + /// User assigned to SessionHost. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User assigned to SessionHost.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + public string AssignedUser { get => SessionHostBody.AssignedUser ?? null; set => SessionHostBody.AssignedUser = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _hostPoolName; + + /// The name of the host pool within the specified resource group + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the host pool within the specified resource group")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the host pool within the specified resource group", + SerializedName = @"hostPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string HostPoolName { get => this._hostPoolName; set => this._hostPoolName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the session host within the specified host pool + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the session host within the specified host pool")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the session host within the specified host pool", + SerializedName = @"sessionHostName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SessionHostName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch _sessionHostBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatch(); + + /// SessionHost properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch SessionHostBody { get => this._sessionHostBody; set => this._sessionHostBody = 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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SessionHostsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SessionHostsUpdate(SubscriptionId, ResourceGroupName, HostPoolName, Name, SessionHostBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,HostPoolName=HostPoolName,Name=Name,body=SessionHostBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiSessionHost_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, Name=Name, body=SessionHostBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, HostPoolName=HostPoolName, Name=Name, body=SessionHostBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..600901bc090a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded.cs @@ -0,0 +1,413 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a session host. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/hostPools/{hostPoolName}/sessionHosts/{sessionHostName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a session host.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Allow a new session. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allow a new session.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allow a new session.", + SerializedName = @"allowNewSession", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AllowNewSession { get => SessionHostBody.AllowNewSession ?? default(global::System.Management.Automation.SwitchParameter); set => SessionHostBody.AllowNewSession = value; } + + /// User assigned to SessionHost. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "User assigned to SessionHost.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"User assigned to SessionHost.", + SerializedName = @"assignedUser", + PossibleTypes = new [] { typeof(string) })] + public string AssignedUser { get => SessionHostBody.AssignedUser ?? null; set => SessionHostBody.AssignedUser = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch _sessionHostBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.SessionHostPatch(); + + /// SessionHost properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHostPatch SessionHostBody { get => this._sessionHostBody; set => this._sessionHostBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SessionHostsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SessionHostsUpdateViaIdentity(InputObject.Id, SessionHostBody, 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.HostPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.HostPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SessionHostName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SessionHostName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SessionHostsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.HostPoolName ?? null, InputObject.SessionHostName ?? null, SessionHostBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SessionHostBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiSessionHost_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=SessionHostBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=SessionHostBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.ISessionHost + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded.cs new file mode 100644 index 000000000000..986376d1c69a --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a workspace. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiWorkspace_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// List of applicationGroup links. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of applicationGroup links.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + public string[] ApplicationGroupReference { get => WorkspaceBody.ApplicationGroupReference ?? null /* arrayOf */; set => WorkspaceBody.ApplicationGroupReference = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => WorkspaceBody.Description ?? null; set => WorkspaceBody.Description = value; } + + /// Friendly name of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => WorkspaceBody.FriendlyName ?? null; set => WorkspaceBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the workspace + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the workspace")] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the workspace", + SerializedName = @"workspaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("WorkspaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Enabled to allow this resource to be access from the public network + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled to allow this resource to be access from the public network")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => WorkspaceBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => WorkspaceBody.PublicNetworkAccess = 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.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.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.DesktopVirtualizationApi.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ID of the target subscription.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags Tag { get => WorkspaceBody.Tag ?? null /* object */; set => WorkspaceBody.Tag = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch _workspaceBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatch(); + + /// Workspace properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch WorkspaceBody { get => this._workspaceBody; set => this._workspaceBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'WorkspacesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.WorkspacesUpdate(SubscriptionId, ResourceGroupName, Name, WorkspaceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.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=WorkspaceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzDesktopVirtualizationApiWorkspace_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(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=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new 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=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded.cs b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..19f71f2670a0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/cmdlets/UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded.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.DesktopVirtualizationApi.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Extensions; + + /// Update a workspace. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DesktopVirtualization/workspaces/{workspaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Description(@"Update a workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Generated] + public partial class UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// List of applicationGroup links. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of applicationGroup links.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of applicationGroup links.", + SerializedName = @"applicationGroupReferences", + PossibleTypes = new [] { typeof(string) })] + public string[] ApplicationGroupReference { get => WorkspaceBody.ApplicationGroupReference ?? null /* arrayOf */; set => WorkspaceBody.ApplicationGroupReference = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.DesktopVirtualizationApiClient Client => Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Description of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of Workspace.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => WorkspaceBody.Description ?? null; set => WorkspaceBody.Description = value; } + + /// Friendly name of Workspace. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly name of Workspace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of Workspace.", + SerializedName = @"friendlyName", + PossibleTypes = new [] { typeof(string) })] + public string FriendlyName { get => WorkspaceBody.FriendlyName ?? null; set => WorkspaceBody.FriendlyName = 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.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.IDesktopVirtualizationApiIdentity 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.DesktopVirtualizationApi.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Enabled to allow this resource to be access from the public network + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enabled to allow this resource to be access from the public network")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enabled to allow this resource to be access from the public network", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess PublicNetworkAccess { get => WorkspaceBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Support.PublicNetworkAccess)""); set => WorkspaceBody.PublicNetworkAccess = value; } + + /// tags to be updated + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "tags to be updated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Category(global::Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"tags to be updated", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatchTags Tag { get => WorkspaceBody.Tag ?? null /* object */; set => WorkspaceBody.Tag = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch _workspaceBody= new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.WorkspacePatch(); + + /// Workspace properties that can be patched. + private Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspacePatch WorkspaceBody { get => this._workspaceBody; set => this._workspaceBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data, new[] { data.Message }); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'WorkspacesUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.WorkspacesUpdateViaIdentity(InputObject.Id, WorkspaceBody, 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.WorkspaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.WorkspaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.WorkspacesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.WorkspaceName ?? null, WorkspaceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=WorkspaceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzDesktopVirtualizationApiWorkspace_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.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=WorkspaceBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.DesktopVirtualizationApi.Models.Api20210513Preview.IWorkspace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml new file mode 100644 index 000000000000..62bf0183a3c0 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml @@ -0,0 +1,437 @@ + + + + + AzureErrorRecords + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + AzureErrorRecords + + + $_.InvocationInfo.HistoryId + + + + + + + + ErrorCategory + + + ErrorDetail + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.BoundParameters + + + + $_.InvocationInfo.UnboundParameters + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] + + + + + RequestId + + + Message + + + ServerMessage + + + ServerResponse + + + RequestMessage + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + StackTrace + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] + + + + + Message + + + StackTrace + + + + $_.Exception.GetType() + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.HistoryId + + + + + + + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Description + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + Token + + + ExpiresOn + + + Type + + + TenantId + + + UserId + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + + + + Left + + + + Left + + + + Left + + + + + + + + Left + locationPlacementId + + + Left + QuotaId + + + Left + SpendingLimit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..ca18b6c6cc34 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml @@ -0,0 +1,446 @@ + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + ResourceManagerUrl + + + Left + ActiveDirectoryAuthority + + + Left + Type + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Id + + + Left + TenantId + + + Left + State + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + $_.Context.Account.ToString() + + + Left + $_.Context.Subscription.Name + + + Left + $_.Context.Tenant.ToString() + + + Left + $_.Context.Environment.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + 40 + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Account + + + Left + $_.Subscription.Name + + + Left + Environment + + + Left + $_.Tenant.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Id + + + Left + $_.Name + + + Left + $_.TenantCategory + + + Left + $_.Domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml new file mode 100644 index 000000000000..1f6599e7f250 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml @@ -0,0 +1,281 @@ + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + Microsoft.Azure.Commands.Profile.Models.AzureContextConverter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec new file mode 100644 index 000000000000..a13ef862f8ef --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec @@ -0,0 +1,19 @@ + + + + Az.Accounts + 2.2.3 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps + * Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSIncludes_Cmdlet PSCmdlet_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCmdlet_Get-AzContext PSCmdlet_Set-AzContext PSCmdlet_Import-AzContext PSCmdlet_Save-AzContext PSCmdlet_Get-AzTenant PSCmdlet_Send-Feedback PSCmdlet_Resolve-AzError PSCmdlet_Select-AzContext PSCmdlet_Rename-AzContext PSCmdlet_Remove-AzContext PSCmdlet_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCmdlet_Get-AzDefault PSCmdlet_Clear-AzDefault PSCmdlet_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCommand_Disable-AzDataCollection PSCommand_Disable-AzContextAutosave PSCommand_Enable-AzDataCollection PSCommand_Enable-AzContextAutosave PSCommand_Remove-AzEnvironment PSCommand_Get-AzEnvironment PSCommand_Set-AzEnvironment PSCommand_Add-AzEnvironment PSCommand_Get-AzSubscription PSCommand_Connect-AzAccount PSCommand_Get-AzContext PSCommand_Set-AzContext PSCommand_Import-AzContext PSCommand_Save-AzContext PSCommand_Get-AzTenant PSCommand_Send-Feedback PSCommand_Resolve-AzError PSCommand_Select-AzContext PSCommand_Rename-AzContext PSCommand_Remove-AzContext PSCommand_Clear-AzContext PSCommand_Disconnect-AzAccount PSCommand_Get-AzContextAutosaveSetting PSCommand_Set-AzDefault PSCommand_Get-AzDefault PSCommand_Clear-AzDefault PSCommand_Register-AzModule PSCommand_Enable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCommand_Uninstall-AzureRm PSCommand_Invoke-AzRestMethod PSCommand_Get-AzAccessToken PSCommand_Add-AzAccount PSCommand_Login-AzAccount PSCommand_Remove-AzAccount PSCommand_Logout-AzAccount PSCommand_Select-AzSubscription PSCommand_Resolve-Error PSCommand_Save-AzProfile PSCommand_Get-AzDomain PSCommand_Invoke-AzRest + + \ No newline at end of file diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 new file mode 100644 index 000000000000..ccacfd07c692 --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 @@ -0,0 +1,362 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.2.3' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '17a2feff-488b-47f9-8729-e2cec094624c' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# CLRVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', + 'Microsoft.Azure.PowerShell.Authentication.dll', + 'Microsoft.Azure.PowerShell.Authenticators.dll', + 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', + 'Microsoft.Azure.PowerShell.Clients.Compute.dll', + 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', + 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', + 'Microsoft.Azure.PowerShell.Clients.Network.dll', + 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', + 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Common.dll', + 'Microsoft.Azure.PowerShell.Storage.dll', + 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', + 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', + 'Microsoft.Azure.PowerShell.Clients.Websites.dll', + 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', + 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', + 'Microsoft.Rest.ClientRuntime.Azure.dll', + 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.WindowsAzure.Storage.DataMovement.dll', + 'Microsoft.Azure.PowerShell.Clients.Aks.dll', + 'Microsoft.Azure.PowerShell.Strategies.dll' + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', + 'Enable-AzDataCollection', 'Enable-AzContextAutosave', + 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', + 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', + 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', + 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', + 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', + 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', + 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', + 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', + 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken' + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', + 'Logout-AzAccount', 'Select-AzSubscription', 'Resolve-Error', + 'Save-AzProfile', 'Get-AzDomain', 'Invoke-AzRest' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' + + # A URL to the license for this module. + LicenseUri = 'https://aka.ms/azps-license' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-powershell' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '* Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + + +# SIG # Begin signature block +# MIIjjgYJKoZIhvcNAQcCoIIjfzCCI3sCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCTwO6OY9CZ9hBt +# sVCPzLCq1tTk36baGgPhZELsEqdHbaCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVYzCCFV8CAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgiAwK5kNM +# cm/r7eeIjqRJA5oO508+3XhQQkxLvni75A4wQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQDB/48KOxRiNEs6y4SGWJiNKjupO4Z1OuzqUElNihb8 +# QDz2x6Ym6/XlVhZzvLjyCqtXbv80xxKGjKF5xygynzbkEegd0fpeEPaQn5e0eaWw +# B6Spob3FMJxPv1rNYFa+bm2p77is05ylF8NcK7ubqPt1DRC3OHW3uyevqQhDXBAl +# xunILpudxwpUycuaxZ0l1NbsRxMNr8nZZ+bAu2tlno2ylqejSWuYBH6ECYMldF57 +# uQJOPGOo7+EtBcnLJfi4PKiWC4GjGypjQyzfYw7UJ/EK8gn69xDU1ixTveA9a54W +# bXCYTpAcOe6EMpg3YM1Ou+gqmcjSURm3SC7bTFCqUfowoYIS7TCCEukGCisGAQQB +# gjcDAwExghLZMIIS1QYJKoZIhvcNAQcCoIISxjCCEsICAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIDN1M/nKQpU074BJ1wTtn6lkpHIR8v9Se3n6F6+6 +# XN9VAgZf25nFRwYYEzIwMjAxMjI0MDk1NDUyLjQ3NVowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpGNzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkAwggT1MIID3aADAgECAhMzAAABKugXlviGp++jAAAA +# AAEqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNzdG +# LUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/flYGkhdJtxSsHBu9l +# mXF/UXxPF7L45nEhmtd01KDosWbY8y54BN7+k9DMvzqToP39v8/Z+NtEzKj8Bf5E +# QoG1/pJfpzCJe80HZqyqMo0oQ9EugVY6YNVNa2T1u51d96q1hFmu1dgxt8uD2g7I +# pBQdhS2tpc3j3HEzKvV/vwEr7/BcTuwqUHqrrBgHc971epVR4o5bNKsjikawmMw9 +# D/tyrTciy3F9Gq9pEgk8EqJfOdAabkanuAWTjlmBhZtRiO9W1qFpwnu9G5qVvdNK +# RKxQdtxMC04pWGfnxzDac7+jIql532IEC5QSnvY84szEpxw31QW/LafSiDmAtYWH +# pm8CAwEAAaOCARswggEXMB0GA1UdDgQWBBRw9MUtdCs/rhN2y9EkE6ZI9O8TaTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQCKwDT0CnHVo46OWyUbrPIj8QIcf+PT +# jBVYpKg1K2D15Z6xEuvmf+is6N8gj9f1nkFIALvh+iGkx8GgGa/oA9IhXNEFYPNF +# aHwHan/UEw1P6Tjdaqy3cvLC8f8zE1CR1LhXNofq6xfoT9HLGFSg9skPLM1TQ+RA +# QX9MigEm8FFlhhsQ1iGB1399x8d92h9KspqGDnO96Z9Aj7ObDtdU6RoZrsZkiRQN +# nXmnX1I+RuwtLu8MN8XhJLSl5wqqHM3rqaaMvSAISVtKySpzJC5Zh+5kJlqFdSiI +# HW8Q+8R6EWG8ILb9Pf+w/PydyK3ZTkVXUpFA+JhWjcyzphVGw9ffj0YKMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYICzjCCAjcCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpG +# NzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUA6rLmrKHyIMP76ePl321xKUJ3YX+ggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqdIwIhgPMjAyMDEyMjQwOTQ2NThaGA8yMDIwMTIyNTA5NDY1OFowczA5Bgor +# BgEEAYRZCgQBMSswKTAKAgUA446p0gIBADAGAgEAAgEEMAcCAQACAhGUMAoCBQDj +# j/tSAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMH +# oSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEApKPWkjqj3O9lNPTCfUHy +# +5IF5oXSncTgxGtMN/q/02rTsvfI4/gsRavPRvwenX9IRZDqlZ5ccJZEd2cVUITi +# tvX0UPpK7gb1svCNSIroX4RIVCr+Vgf9Vnwp5zZYD/enTrsA1/+hydcgoAu4AJKa +# vtg9d1hJIw/iTb2nTTOjw1IxggMNMIIDCQIBATCBkzB8MQswCQYDVQQGEwJVUzET +# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV +# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T +# dGFtcCBQQ0EgMjAxMAITMwAAASroF5b4hqfvowAAAAABKjANBglghkgBZQMEAgEF +# AKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEi +# BCBysfNgmLIcyYp3CTmX0HgoKWxBGMTZwN/7i16ECzCObjCB+gYLKoZIhvcNAQkQ +# Ai8xgeowgecwgeQwgb0EIEOYNYRa9zp+Gzm3haijlD4UwUJxoiBXjJQ/gKm4GYuZ +# MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO +# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm +# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAEq6BeW +# +Ian76MAAAAAASowIgQgclal1LwDfBg6QBrQY8Rnd9RhiDfXVivXo/WUOazIGLYw +# DQYJKoZIhvcNAQELBQAEggEAOgYVxMhZQBKvosx8UzY9WYaa8WsJKFnWK8mgZDGF +# 5vqqPQE0m9M5ZjtNTpmYx9tXFJxSr0Dvyg58BV+/VFZl6/8WhyGi4FVu3bcc3jo/ +# HoJwIW/jdkC2GC0D5XWEXDhXSWy5vc9BuunxCB+8P+/J0UhjrKEs2ASHQUKzV3e4 +# Ao8VdcQ9pfSSrReO5Vm7nD936C3PCsS4owBXIwtSoPJbDFYAV05D98rV8MY7UOiB +# dbRmaa/QOm9We4PvoxHQj9znKBHk+Bmx4jQxBcEQRAWBxr3qdO/MdYNIUo2duc/v +# tgzScCpo8ooh3WeHDFKh223KA8AToZmCrR3iNW8r5ug5ew== +# SIG # End signature block diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 new file mode 100644 index 000000000000..bb5fde1c75eb --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 @@ -0,0 +1,339 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 09:11:01 +# + +$PSDefaultParameterValues.Clear() +Set-StrictMode -Version Latest + +function Test-DotNet +{ + try + { + if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) + { + throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." + } + } + catch [System.Management.Automation.DriveNotFoundException] + { + Write-Verbose ".NET Framework version check failed." + } +} + +if ($true -and ($PSEdition -eq 'Desktop')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'5.1') + { + throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." + } + + Test-DotNet +} + +if ($true -and ($PSEdition -eq 'Core')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') + { + throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." + } +} + +if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +if (Get-Module AzureRM.profile -ErrorAction Ignore) +{ + Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") + throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") +} + +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "PreloadAssemblies") +if($PSEdition -eq 'Desktop' -and (Test-Path $preloadPath -ErrorAction Ignore)) +{ + try + { + Get-ChildItem -ErrorAction Stop -Path $preloadPath -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} +} + +$netCorePath = (Join-Path $PSScriptRoot -ChildPath "NetCoreAssemblies") +if($PSEdition -eq 'Core' -and (Test-Path $netCorePath -ErrorAction Ignore)) +{ + try + { + $loadedAssemblies = ([System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {New-Object -TypeName System.Reflection.AssemblyName -ArgumentList $_.FullName} ) + Get-ChildItem -ErrorAction Stop -Path $netCorePath -Filter "*.dll" | ForEach-Object { + $assemblyName = ([System.Reflection.AssemblyName]::GetAssemblyName($_.FullName)) + $matches = ($loadedAssemblies | Where-Object {$_.Name -eq $assemblyName.Name}) + if (-not $matches) + { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + } + catch {} +} + + +Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) + + +if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +$FilteredCommands = @() + +if ($Env:ACC_CLOUD -eq $null) +{ + $FilteredCommands | ForEach-Object { + + $existingDefault = $false + foreach ($key in $global:PSDefaultParameterValues.Keys) + { + if ($_ -like "$key") + { + $existingDefault = $true + } + } + + if (!$existingDefault) + { + $global:PSDefaultParameterValues.Add($_, + { + if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) + { + $context = Get-AzureRmContext + } + else + { + $context = Get-AzContext + } + if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { + $context.ExtendedProperties["Default Resource Group"] + } + }) + } + } +} + +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBd2Z9mhlN9JBGA +# KEvyZ8IlACQaul4HtGNYZ8A+FQ6kB6CCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgUOmH5mL4 +# yjhTPdO8UHq8XMO/+VLsyYWYIJ/RT1XbkkkwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBSAtHcsNdTD7P7unHEaac66zKW5HDgs9kQNlmx+CTk +# hmfADe9vY3K4s/N9HTv0wKjAsewt+t72P8lY6YR1JHkB3542pmCxZHf49Pzl1BMd +# 7SFQuO7urwhMsBJyuF/ZWEuPjHklKbGFUkXk3naEmI0tUr7VcBoV19AQkUXIGTns +# wnwayT3je0meI6ChBs13++mGyVIzrYnTFUl7aprvBy6Vd36G3l3RYQ6jIXIKlWWF +# jAilwLxDFW7wqTudigI7Fss7VTQw+ICyjfsbtQvb2SDIbt8bqoYyysu0Hrn0Bu24 +# oWAj0B2a+P58uJ5uBZtWPtqZA8cB1reyenKQU7PQK79OoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIO3zp5aPKMXZRlXnju58Vbbq42teCqYlPkrv0nZt +# 5w1TAgZf24vUx1UYEzIwMjAxMjI0MDkzNjU1Ljc1N1owBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpDNEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABIziw5K3YWpCdAAAA +# AAEjMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTQ1NloXDTIxMDMxNzAxMTQ1Nlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpDNEJE +# LUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ280MmwZKXcAS7x2ZvA +# 4TOOCzw+63Xs9ULGWtdZDN3Vl+aGQEsMwErIkgzQi0fTO0sOD9N3hO1HaTWHoS80 +# N/Qb6oLR2WCZkv/VM4WFnThOv3yA5zSt+vuKNwrjEHFC0jlMDCJqaU7St6WJbl/k +# AP5sgM0qtpEEQhxtVaf8IoV5lq8vgMJNr30O4rqLYEi/YZWQZYwQHAiVMunCYpJi +# ccnNONRRdg2D3Tyu22eEJwPQP6DkeEioMy9ehMmBrkjADVOgQV+T4mir+hAJeINy +# sps6wgRO5qjuV5+jvczNQa1Wm7jxsqBv04GClIp5NHvrXQmZ9mpZdj3rjxFuZbKj +# d3ECAwEAAaOCARswggEXMB0GA1UdDgQWBBSB1GwUgNONG/kRwrBo3hkV+AyeHjAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBb5QG3qlfoW6r1V4lT+kO8LUzF32S3 +# fUfgn/S1QQBPzORs/6ujj09ytHWNDfOewwkSya1f8S9e+BbnXknH5l3R6nS2BkRT +# ANtTmXxvMLTCyveYe/JQIfos+Z3iJ0b1qHDSnEj6Qmdf1MymrPAk5jxhxhiiXlwI +# LUjvH56y7rLHxK0wnsH12EO9MnkaSNXJNCmSmfgUEkDNzu53C39l6XNRAPauz2/W +# slIUZcX3NDCMgv5hZi2nhd99HxyaJJscn1f8hZXA++f1HNbq8bdkh3OYgRnNr7Qd +# nO+Guvtu3dyGqYdQMMGPnAt4L7Ew9ykjy0Uoz64/r0SbQIRYty5eM9M3MIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpD +# NEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUAuhdmjeDinhfC7gw1KBCeM/v7V4GggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOm8cwIhgPMjAyMDEyMjQwODQ3MDNaGA8yMDIwMTIyNTA4NDcwM1owdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446bxwIBADAKAgEAAgIVsgIB/zAHAgEAAgISPjAK +# AgUA44/tRwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAFvFcsonpxiYd8j0 +# IvBE7oJr3sQv7rrSSFZAmUOzj8SSFDiNIE6HKmz6s7NUn+76aLwz+4YSdVzh8k5N +# uP9SG6om7DpsNnXkqk8V+UbLQqBlr2P5VpjCrj3CIisPBRX6TOaS6Vu/Vt52RMkZ +# zyJ+IcbaqRwQta25/w+22dNOlZ+iMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAEjOLDkrdhakJ0AAAAAASMwDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgwKXXJiigh0A3RXQZZmqHVO1XUytVy0679ZOU3RqryccwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARmjODP/tEzMQNo6OsxKQADL8pwKJkM5YnXKrq +# +xWBszCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# Iziw5K3YWpCdAAAAAAEjMCIEIEFder3roTqe9YoUc2Tgbwiu+Bhq6VhK0jhWWMSz +# zaB9MA0GCSqGSIb3DQEBCwUABIIBAJqIHpRyvt+gthojL/3XkvnHNosNewDaGCu3 +# S6VyJOkkdF7KdjChuvdZ2daDiQiA4homgXApYO5WzgFxnd4umk4ZpvAfTErqgAjs +# mrOaHaVtwowNB0kljciBMv7FqJs5B3ukrUQ4hs0rcxXecvd6Kytfqo/Y9MxrLTI7 +# ZDCGJkoaqGnRiWOk2ELFbJD8Qdz58bPqUld2gnCT2gfheDUTHmXioWvig8LryDzn +# N13otMpDGmIOaX91I3b1GF5h82aiGnJcUlkz5JdEHxGEG+Yydy9EFx8NLDw3jo2z +# WHU0LN1SqFMZvQgc8VgofhJI6M9gmM0kY4kzHCJ/6xtwUiUxRtY= +# SIG # End signature block diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..18a53248894f2c6159ca11001544daa915289b5b GIT binary patch literal 63880 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 WEh9E(pL;jZjM1dJ8d+Cj*na@ktwkIF literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll new file mode 100644 index 0000000000000000000000000000000000000000..a176a44730866ec4548d8b0ae0054671bf2a90e4 GIT binary patch literal 179960 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 JDbRl&YBu7JY~mLWG1polhd`| z?@q{NRbuhZXS%oN+b3-63D7QSF_I5^I8E8@p_1WB;^C7nhrX!4c%*-iv+1aP$GPWi z1+`&!ZcD07kS*dLc`t=+La=DHmmS|Eur4!u+>))=q`#d_JksjTKIh8UFlEEMIx*R2 zg1Bc+J{d4+m{DPVFL^ZjUJ`a>WczsYWwUuh%N2L7;N6l@K*rtz8M`w`#_$%K_q0ZOeyb4%VE~7> z_+i$NxW9y0j7L;?i(Y;JTY$`g#_bjyi20lb2^ob*fwW~n%uqsROe7+Zm;*aRl9&7? zefxos^-*O0-%#X#Nthlwu5RHE@vBns6%#ahen)cS_45s@UlvFRj+=dU%02DJD~|^; z9d|4~on7XhVzTEQg)G~wRP^~k=p#|2tyH-_tb2O4M}~dX_?0EznucZRM7yn0wH9QO z@wb-FnFaC%C2^;dwoFyeJbxqNPT~uz)aQ>nZZ;nXcq?G4nzqyH5&uJ-iweDyOm_R0 zdwhHBQ1337w$GrxAc45ksm$}5EHP;6(on_l&el7~s#b==_TwUo+KV@pbtG6uQ`BxR zT+~&1V!`&xv@UK6nY)uy#%J)!J!M(`gfn|r&TBOB)0mbi|Kvoo?XuWYvq*e)Z=Uz4 zlnKm=Y96&E`t`Dm(Q0D3G9Rh^goz3><@>9J%0Gl!ZEboP&hJ(i+iL1kfH)R#D@3-d?2|Uib{eqlSm{J3SuxRz?eezC(;mIGTkIV*U*4yq)VY2 zQFVaU=Gm0 z6r2AM1q5UUR0b^eLnyiiL|wpH1fzj-`Uw=!KxYJ~VE-}DK=VIG1Ao&t=ZB?>5xmgn zp3m;dC=o1r!dsp=KlD|;7^ac`u}L&(M6XxFk=yrseC!*963-R5mu`-KpIW^{X2gQ> z?k}hGYR0fTaiPu=_I8~YW2L$7h;h>1q$NU>y^uL`c}#JZptZBSgM&^{TxK6){F3+}Yc5=r}T_v_g^X9+f6tsG{?wbI8W z&UbD+f7#7h<@1~k5_7MrFImKXS#23J%8#f~eW=!L71jOYxl~rxy9>vZ7VllZRKPSN zZvT9QD|i|RUICBbiBSzS&?qU$7xcqqA%2*ICMLR3W96m}9XfuTEI)8J;y6@r9CA{0 zfcX)1kx3}x@yn3wp}(s}$H7VaV0OKj!k0|bYz_Mjps$JD~IIL8HB?1UeDolw6mYQ?p^Z0p2($qzfr zI*baceQX{b+;8?&D=0&LS0Rh-`A#nF`B!opE9Y*spK^@Nl4TUx>+HFLCj(tm3l9hD zKNu(eZ6im!FD*DKY2wnUc`nljHVkZUY$X)U!&#?EFrB(wEbb16d0 ze4IVGS`!6H#~ts@q`kPQ>;KNi>_w3X?t^Xa_8W88Xt=$M-#fj-_L}h&%Jw5MK814I zQ?HC%=Q*XKNYs!2RzC@w2PA9`B85^089csMKoH@FuOZ~?my`q*i6C1?b(!HM-ATB&w=70eC%(2RumNNCv)3O14X8~%{ z0JAYF=H5@WfQs28wup8AF;FqepQB-0m^(`{fpK&s8x98Spk*7+JbjKZa zV0|=yH7)US!w9+HD}`GLx}U^d&U;?feK!5(>BtwmCGz+SJ)f4Ya`fs*x7_-!v#s@6 zii+WsQqSymxADs+7H}0eHKqwGbu>D6ugSgqQl@Z&bCtr)b*%J>3&OX^cPqBL-3_c! z>-AB(nzyD*^Kcx^(>ia~)t;98*`ANL@Yz`F`*l4yaGOhFekn+odHy>1#hyH!GgXtM zB^hh89=^}}G)hC1K}mZTuQL7AjRwz`*JC%2^{FPy`aRyH?-ekB%(^Ar2FHh+|NyR();O|y)LqP zi^>I6;~UebX$DtrT9;m(TDL{@fP~N1_PhfrK}$x2=$?uW#VKvx-yys3gX|LZ6DzKT z?6xE7XFqzj!0aAwvA^Ao+7;EMV?RlQKmxV7@D7|{&oS$1U-tBVgC!1@c*XJF)e#lZF zuV-i2roekzk8IrzrCe{)venZpN}1{5I^sFM&gYQz>k;PiPH$w}r^R=Hc4s`lC6qipuV?A5k#?g+xjUA=^@#n3&sK5~S%#BF zY~LP#GT!#od0qD%2bE)|5o2n$)K6ZrDVNH3R7s-v%f~H;@wIA>?!7&NmFEcJ{nUFO zQ14xTM7@8h34ceur3Z*GP;a2;I3zg}rLE%ylGh{2sY#=MMSgQ>1=PP>yx>a5?U&7+ zo>RDg277jwu#6t#A4B#3ls=-$Q-4m3y0-mZsoZPl z)rl9#ljh}@zdoHHZn^Nb8%wnnxqK>?;WHO6CpKF0=7Z6h@28vym|dc)|DtDEO3f_K zm)j!K!ir30-2M<(zISZAzjj;R7HvbJ7V9)xdA99*lC|x!X+&AFCP!#wYqVvz58g)FaGX znVsc(?b=60d|gEfJN&JFR@IvE)d6MOl$MX8^O@-$^j=r`T(#-wq06)*vF?Jmr|G#A zr5!4a-B*&cIZFQi#^o|mYWk$zBFvn*YbKQEv@N}?diS;R%L$jEI%u301*W z&CFN3GHQw1y^lgX9H4!fwm zy=eEX;0B?*N#+Q1NE0K7^O1Qu)=8GXbX-jXw^t-Mc7nk*H0WMLop0(#w3UFaJ&HJ&3zK)aoSQEHv`o?dcvQM@Zop#9>Q)Tk@_0r|8 zcGX7I^Uj8kf;a3Ld*gPP*oP51^Ie;_hg2^&mM8S zTQku{``W90-%9P8eJa(uQ?o0~ZJZ+7EOwM%eaen|LS^<$m^1CWyYA z#EQ?*)v!DAy75J5wVqVePFjczro_@4x?IdZN1QSEHIGbCTDH708nR?YNY+1nI( zA?u)&Gj){G;rEX}CsSi4zEQhZj1;fAaQXIBxAI)BhCjmPQy+wu5RuC_22PE{@N@0o zCJ+4DIWYt~eUY()z2+y14;%>N0XGM*Pmm~u8r%>gk}-({GLFHVpKvo_*{yql3W3F! z4}^7()Z8LXiS+IqiYs7sMR8@@!knEU-Scx>DQmqCHkI+4`kyGMy6koQkg-L0%n2LS zIk(hy>IA-C;x`~$CATgwj;-jaaJjJFLsN2Eh|%Poa+k8l znkrO1zr59Hzs)DU>!g6>*nT%OiCN^Dae{bFD?oh4UGJZkrFQ43EG$qYY zl4z1tx|-nIQ(RzvOQuspr}5nR)5Ye`Lw%H4?p4~0>VghvNVFVH*P2mcdtbG*Ug}i) z@xXefLT2U8RnJ7q3**PH&n#N#G^=#s352U|G`L^|@IpB`XavUro3xLpocViO42BSFaS8MF%H)-K;r;3e;O8TGs2aBGJ`6-q-Pi~kbK zs}`aG(iB)!R0b_7KU#$eU`ZqLd|X5#5l|B`ArW~#F4Dl^Kg2YAefe$6NsG7LzZicz zukzWLjW^x4rOQ>j8hvsv-zR;rrTRsUhFj%1c6s<+Todk5OGuz0@-N%d*l*#etU*Z3FmUo@$_t@g;nC&sdO>)|Gkz@U@5(IJTeZgzL< z#A+x{QWs{7OW z^T^vV`&hBlGKEX!YVwNx-jsE^1m@pMYrnbLW1ZX1^i9o&1FlsY2R)}sUgAx-i} z$Oz4dVXSLxWJuICG$aP-`qK=lU@$hM5E)Pmg$@-)hMI}(ne-+X!CTzDa>mALN5gkt zj^a!Iy`$`xeyoT{Hs&h>^d2zcqWJ8G{?SE@brA|?UZM7n8q6ymh#NAi{}{|G{dVZz zzo6e&_6M)vfYi}%#o~j|p&`C&Sl;|x5Vx&Y@)ZTUb)G+V>h_xXZZ9r}?RE$bI8&HC zEz7iS+f6UNSs|aww`_j6QzJpt^W~$r6Qbe^?Ob;&JIcCswn}AJ3Z!dSaF-T%62IiE z+K_&xr7kLjj zI&%A)MjRdc-d*(e8AbM0!oq@2RS)YPnjZMH{z86PI^%$?u9x=gyBpiX9?;&cGss&^ ziJtekll-b?0%5>=zvpUq`9YJ$=W7u_wKPzj0&riG4S{#P&XN71#6B%x}!h z@LGF%k2h0&<63T`D4TnqyrgDF;thedD@q%)m&`tNJG+_qDa~$e!p=tLxX!v;AqKK8 zk?$-|Ws0`+)}(vP6)E57x?AM@yO-~JE$;PX8*Te~a{aQK9_B9lZB^PPj40i1YA--* zi_OgQ<(J^AdqmjR?0NJ_n`}VkJrAz(Om1xTc6WK{`N!qI+CTc9voHOl7*_{A~)8boWBSpb#E*uZmbN_zJi{$#7 z7%$-e0a=jb6@Ljc0P8r98E6kOgWsFi2iXD@5|d$O|}}OspKC z{Mb13;;1_DcFMUdp+i+BckrW$mbX?)#L<^8PMfbDc5u7H)|Q}oH|w{!9TwB6Ja~W4 zqyzDy2k&k6zC2%Euq7b+CCOD|l>Uo-A}-fTtdINFo!8@!+85M$CA`zrCs(%1_T*Cv zy@*LC$L`FbN$K9Q*wp>(iLk^SpSVH??H3Yfa%5u8q?xsSel}^2w2G6bR$e^o=_u3V z4)f~XzO~x0gSO3oV zXOX^AvutBZx^WGsi}<*H56_M%DO0%Z;rPNNSE^;a!|Ac5){AVOS5&g%pR!)4*O%L7 zU1&R}==E?(>Ki8qWY@m6^>60xIQZr9p@7DUjO2xH@4j_>;h?=sMr-G;gutZcRsOMl zhxM1<^V;fD9;2o8?rnIb);gVa7RECx8kSkFJTE%q!tFvUeNOsEW_K)MwvLSN{Pb+| znFdQA99kjwWV>_M=0m4#bHXxjKE1nQ&48&2eDwGhq~FKh5euS1zPJ%YxDNSEMn*h)l;Wa|ZS!V!ys2KW#|WfDPYNZhF(DBlr% z>USK(6tf{d6IH{}cuNKr0joz)`hlQg+&8czr7-iUdz`%9tvXJi+7|K6BO7QNvn)3! z+>9HszJlSWr(@n-$+{7~UnR<1@a%f`r}T?gIQV`nNE^s;vFI@@2XUi#x}NJ(5;=j{fL8!*hR5(7xy1%I(+}(m=&{Z zW>ZKDH02YEyEMC>=$I0MGY@;O3}Qy?I?k!I5ER;ppQvTdohsuLAbz&Q>3zexM8$|P z2{yZ;n=B?W@+*B^{ZlHHXhs<+^$$9`J7jaSH5;xLW?XOerA>P_S9t4kbD@>u`5-ZOgnnGYUl=?WMDlRIcN+FBESn zoN5!JOul$CFKd+(Nv4~l9& z`02~)*WyX9f+rvRg1i-&v9`WGDx9{#?8Y`v=b7b6UTV3qBT1_9ZPUbxr+(gDQ{Y>X zyJCyi0#9dqo3obHTcYQRCE165joVRC79Ji_?aG#shI#9SiVp-}aLQau^2cc}b?&)t*#dkfHydhr9ceo!@CuXov z?2XgtsZM)ZG8@z@f~(esJlJS)>}>1C6>Hj(vJ(A1e7z{;ennUBXzfSN2Hk=QBcFyY zOuTWCO=PQB$5Vu2N$mcMkFoZi0Xh(eN8X*7URc5NX_?_5&^=Wy4IJ%g%Bjkz5r(c66tfAWy;mLuCk_=LPQg!K|HkCg#VG+^6;vYaLq!#RjB zyda4W-<6Ymq9FO$-ySGyh1eSELY+$^U27X#%AX9B&EZO32Yb!}i1hRB7u`jZCt{*I z-w&K-_=xUEUwDi$Xy!yH@kvJAt7H(};m{C0L>B!eN`?la&Qmg!29=EO!>Lil0s-Xv zS#Td3eY{6W;&jZ&Ri=bDUt}`ge@YBa3+1>=-zgNsahH95yC}#}$L~UA6ZKs5ar1yl zbKA$bX$lZkrYXp$E7gk1tX)J!yo(WQsdw{NEOoaUanGrgB2r@ccvI0`HsYnh&9{-b z{_4G5^3`(n`J~zNZ98V$rI3~?Lo$jDe#!2|*EY@ASaE)*?+vO9Q|qF9PfF6Mdg>S3 z3QZ;Tz)>uD)l~-_=__6Qi+#VwsF<~TMHQ8;vUIYTbwg^aka=L@`+&3jo2?hOU3dJ- zY|6e|yt^ZQq8PFLfwRztV=F|+FJl!CwPanL@*wC9%^rLHe;dX(AXuUn8blW{(j^&SLhFAZjPEyXgTR`D39M*@QF1zx zyb(!W_npj|jF=6GoOlS~caWxQe)Tx0|Ls`QT7y&me%TMbELz^xW(BNY(;MQS`1rzf@eLY{CU3?~UqIWo zP&K@AYkuC8Pl*YeL)ORc48Pg1wMXd-r7o@OVxidPl!CJD@&^Pgmy{k&+M-4w9G%ca zfAg`cd@;>?f>gYoiC1*qg1thkq*ltFr0yDdCA&`2E<5SM^{czCwD*uKop4xL}j%M}}SO%kJIw`#wHlEvAM>#Oz7FvP-nc=jnaO9R^MGy^BY z;yn*HAKqn|SAA{VG^eL2JrlF@M+P9bPH{+%^|XcWvsURVTv9#gee}R1>nRy73-0CK zyx{RH_=#7=jVH+2uQkn1pC!tDXSQrp9!JqXeQma&UYkUY3;98tsHWnblEq|Yk&_RM z9^Ud>_k^>;0SzsG08WH+L!1ctZ7OPnWZI)bjQiyO$bJ4^l0I~sjFBN4&oi)120i>| za{qtLsBS1{T#^ayrc53q*K9A@--gKVm-fBhA^34>P>S)K>o~XOt>KD69om=f z_7XE)okpH~UqMeXH4)YHbeOjzS9P4WLd_i6XPpUn4>_HdhN8`%FJ&Fnio`{!ebQs4 zx%-{GaiNHGyXmfSTzhi9*csZH*x-gPXC~4`zRgNviBMXYJ(JzudOuXZ?L@7bdn=fRBbC(@&oX;$QJPqK<`he*f)e&bbS+ai z%QVbJho;|G(s0|H~k8kThU_ z3>qZP<1S$TC;q3n%WvBL(eVGTf^RTy0BoF5x?yv2?ve6U%_*riwd55VqihcuED50! zt7O^T&Fb+X6=%m7Pf5L`En$C!lTmnhd4o{w9ji5NrtOWhBx8@=`l6URp~+2t%zg9t z)0a+FI0ww0HCBo-fvTE&rg=l<{IxxzN6c58+sR6vtk@x~ct`NS3SUDH*WFerYuY8; z&p1AJY?Vttw&gTmsO;6lx?%74)sq{9mK^b(_Cguo8RYb_?uojNt)u1HR5`Y_%cRsN z(N_~WzV*%Y8dB-@v)34|BSnPbGmb4`WwR&P~4Cxiy!|9|vYyDyq^ZKg<0GD+qZL z#9$1A@c{f|aOCItpPi@nYDg@2A3kr?!VQ}#J5zI#&mqa>1<9w85Ysj-U4n zI=j1J`vu9ywnn;EL>t)9K{m7^PC~SKBKu(G8!TZ6!7U;Rax0;oCeX^oD+yKl(Ty5nS5?fj*e>nj?mYppWs(KAWH0|G#i9 z;fF3`n>d&UcRgB>>Czo>R`AN+t6^jEW*nMQYh_SXr1EG%#n$Xz1NWQs*G&f`+f)LJ z$5K^~6_jkcFs**=zJv|)WVsodWIi{SgZQ=G3Rcw5Wg}DhTP70Tj=eB9hiax3s#84Y9+^Kw zY_lE3vh{t!I*a;bh^%=Ji|-w__%{8$svyr4_6x~os40w#Cn53!77vI3llac2f&6IO zO7yu|_R(pj`UWM*snHf1dCb#miDaMP_~zSX!C{uGrXk6VLmJ>4K}^1hBws_4Ymnq( zfziKOz7Uv-BqtRt9*&a*QEjGfW>b#MtyCQCDXu-QR!rjj;tyYjVm`1PF#6!!IHAU@ zy=N`MI8Z^O!8HshbS$1s`ODmUCTr*P&iO@`%68+1Nk$J=Ic{lE{-sms$gLi z>J_hv>)Ev`XF50YX!((YMylegm+R+!LE^ts4sV!eai}c1UjC)T`uC6KbXf^(s?YJe zu{U(qVIx7V>&5q%#=Q$aX(X%fF?G4~*)f}Tt)x|(9_Ss-pY513H=#N!Rr=!dns0|^ HlW_kJG8x>{ literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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 Jf&TB3{{>qHNUQ(= literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll new file mode 100644 index 0000000000000000000000000000000000000000..d1c22069798146202806bb6bba9d3b1c95c16255 GIT binary patch literal 108424 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

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

CkkYL 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∋-ep<;4)~zsS7GH!#%8J-2USgZEs%1!?!(SQ_&xFQMqX2r1`P{)FEp z@4r)vc@>Hc%g!zCxv>b0doT76nQnvli)^=*qb_&;a7HQOW zu`NcUwg+{yw$rPq?H|RQ(ubtqUydxW+BFcyYLCWT(iULDOYr}*V7@HB5}5_7`8lOm zIQ`Rh4s%UcIsJ>A{%WVcyws1i&hIzbB$<6Do34Xd3_h=-$oa>9FUDb=wU*;Wi0N`& z3}y#l)cGbhtN=zf087$34PD1ll}a5I$=H;W&YsjgUCOm(qvGj5jh#Z*@)7IAZ;HiV6}c7*$>u2;ed<7RI5;^xvu z%FUIGw9;X?`L*!E{B%=YJg|+MB^Wx@MF+4jE&Xo5%{;@9n_o}axdJJ<`7eYveeZ-B zIVTeY#k=d3If_&ZZrG2acHbkKm|Ib@dCKaWgFhZjL*Fbr?5uv*c!Jikv9G%|B*s zGSwB-^IJcG78qA@^Cg($;#}A5$z0caZLSNC2SsyTTY-Oe#Qyt3?giNb@<7N#OXos& z3I4meE}pbTTR+uG$&U9%{*A&1`0kPsRGE3sCpL!cT8OW-oqvtJ4R5+Grkn zC(Poc@-B*;e^l4IU|tGC^fHDa`d4Tablwh)2OZiOo7odgQLc9( zx|B9jbg5*dl@5b0?}Zmtbm5^|MHf1N)gtM419ah!o9OZZ%FdgS5?%fl(1jU97fOdN zELWn7`~rb4`g^1UhAydxiZ0H>2I!(5PINyAv*sbt1+T^z=)w%53#CIB@zA4-9hgCc5$}o+$_;Wnj$9(pvx~=o1jZj&u{$-+TDtK zbPJ4I&Pcdr591cxjgGkGrQiv2%ljZxZuvKK3u12J8EdrlYu2c9UhhNxhlN`{j4W`= zCm@VlPQtv;Kk)wo)-BxfQDpYwmXA4o;1(=P==5RUXQO%MGcb!Y&1Wfc{?T)OhuHyX z9?|0L$0wmH07hqg*rY^Yy|dPjN(18haN_J zqu4_?Bel-&(AP*kkcKoWt5;fdR&tVT{^a}?zQMO(&G_V;$@%S_pmV+Uzn<^;9NK{X z{X9j^KPu2fWeqf8dHB{E_`CXG^H^qqs4eDuSU82I1yc()EME!emnGKPd&0mjR=$|; z3B@94O4PL;r$@jT(^E|-ts*bO)cE8{PZnGRmhVmVkk z9G3KF&iNkw(bEBgrqn})Cg-7prpc+v)=~73tIHp)9&UvJM?GB9{SwTYhfA{7zXLQe zV|q!}p>)tB9xiDeLz5HPP^1qu#ht<;22FIspo#VgO;V3S6L&12=?mD-a!sX_LX#?_j6ze5n{L0*hJMf_ zcA9iCp{Y+7D>Tini`Ch*qdhb&w-b>*6-Hm9&>1wzk-dD~lhOJ3%yirdtizy*n}nvV zvXvXODRQEi+{!_dv{2LrP2iq_n=UYJ`dz|JZ#8Z@J(=&B0QZoa?g^Q4)7j8nfd6j3 zhbJw^O=Bb9LfMZ9H+>aZxL0@z)-S{s7PXZ0R!P4h={J$$?%}r}+PBNy!`}eF#bK$~&jj;zUWYVcCVnol_Qpkw3r)?wtM+qUO%2 z*cPL>d-x~pr!*SWW34|!3pU(hJKQiExol+o>hRv)Yu;GCw@1H5TYu4g`MvosARZr; zczg$0hzH);{T{Zm{QHvr04ZW{8$|mKiNRk{SYmKHHW-6DAT0*8ff%f(=zJF`WAI;# z0kwz$#fD`U6)|8D82LMlAO`<{sEL8t7Ndy4Ke3<2AgIS$|AMxRLG3%c^lP;BZ{2sr zJ@lB+82k`fdQAKnTUZ=R(w|EDGf97r6!G{!i1yzG#)I|{k6%!9euR|q7@4QX1ht3< zg^LG^G>V7V7Nb!-f;x#u?J+^WqIevQ8Pt!-G4V@eVGRE@#KL*2+w-W+`Uf%u>!aO~9YHn)-H~6CGf3abJLG#(2p7ZAMoF|6FcU(ba@JJ8Kpq}3vg%*e9$RYS`@*iI$pG1sT;=emrvHhd1 zIl42~6?g#hKQ8_7XJnxt{tAJ9I34})J=j1$+zw5a-y!MWB>lUj|3KQhLV7^nFJ}+j zx9EZUg&v?`_P{?WJAXmS9vBThzzp^PrF)Bt<G1@gG@HUSl7R>+3u4 z|9p&7H_A2kf3Qz+jm__r6<+|^;Pju~HR%8A^j|CWdN{ZD#;K(+_Nz0BLYCS08HzdZ z5nwu(BIh4Hud$gOuCevAYHUDpwM<8|oURudx|rp3y3mYoOU)LrRA}@XJA=kwW3#U0 z84CVn+pEyV#&7!ki4pS8P+YPlYp2iARr9v13dbY$YEjesNUhh{;!W@Og0y|Bx0{?Z zGqs{&9A(oqwQW6i(O$HaC0Sl_+hbcO@zrX{E#5m6#7N%ujcL z&7<5duq7D!Km{Gha_0F9?7FYE@wCFb5(`%>%Q8i9!_+(gjw?tcO~Z1Lw%rv8N4e&=`OIvLw{F7 z582pP>g)oWo8<*|={OGcabz^Pz+Qy?>;hYCrB`2dUuV+>PInihyfqMaCFZe#`alIU zcvphbU0_QC{apzDInyIIaOzAK@6?IRv{{sLR`G?1*vUtmj{!^LTF zfgOtUxxkJ)g+=TFn{LkPZ0?8)?785T?gDIQxu#M|FR)c1W%L5O#!a_h zXhXQbo`)*pyAoojNf+}1yH6ME1@`Q^Se;EfdJIQQdkl{1U5S37vkPom2zMpoPGB8& zfz8eGu7os2P87H+5nwZ@OV})~ug|yZ>t83=*Ke}x>r<2K>n*`NyuRK8GQGZjCUocH zzhhROvmCR|8QFdT*6kK%nts=my(OnV7Q=nPU)1x^rEDLucx0X%uZwzThge&~5>8FqP~`l>Bi6jB zdHVS_W-DUNot!(Ph{d)lEX|!!#9}K8jUpD?S7_J{^ISgYHrGDrwjBF-#A01zGY?*h z+Zc20gKjb?Z3@Jq&k-~!V$tzPt%ybMBlSSUa^3O2#;0xJ96D|VMb1BF)-1w-vK!{O z+N+SLvId{{{Bd!ABH$CX1wPSYick0`ZjbvD5k7@t5k4hqBbiuhvGe$}6`U}9;-=!$ zIPOo3>-`C9q~4!c5Z|9DjZaxdTB+$F-2I91`2NIra(`kwc%jFzeCLfnLvuTP=S}xv z^;ypC%6HzxvxC@A_dzoAJak*@VE%as5;N!EjK7a6oT+{0c{tk=Bqeu076K04-4C9> zvdM+ryHa+RAe~y6wdRuy_~C*qXU6nGEI|h8;Ed&9N$-B}>_9lva|InRI7>ZLICCC4 zIGdQ7(7PYJQRD7@sE3QYJHV`YxHxN#(?i??gon(SUYvC(9h`}Wi}miuBHrN9A4Kdc zbqZ%$&TXNy?)KQqI;HdYG2Mllocg=ogme7b>v2(Sf8Wf%U&g;@K8+4j?Zw+;l2R_7 z^j5>&P}0Cns!2!n>8WYGGcq+bP8-FdvI;^^ejOnSYL+QXx z8b76XMkce#NoxR`VaHJbwJw8dLl!BWoq>O@Fjhk-2(1sY? z+_7OVev7Rp-As7v)6MUbBW-rwtPZE0?coiRyZypv@J0)hON+ZBa`f|PpKS}b?cYMh z(@ovNWzAc-tY~3;s4b&01Vhjj28Ma1f!_uU`ys z&gFBxF9$c0Pd^Ch`Se*}N$RhL^m@*<{usJH;J@Qmo-ZP9y$tp~CEU6bvM@;Q3SrOF ztiZ|iqxgRcPWxBMT;DFpEZEUA>)oB+Gi%G~1GC!sX85_j)i8@w@EVGoe^fsr%)E4> zkKPwkc1of2yU-|w(&Iv-(|Wr>p&dx|VWw(&n zahxz0GdN{O>8Oz9$|*bfse%gihf4>H3R4f23Y~|J3hSoq)WeDHyw7z9%w@DZ3jmMq`_Inb+EvfO%(cZNG2w z?2Yn9gi=R}3UyO?+VJV_J}7Su$5h@THe9Fjn8B$$N=Jm!a6gsD24KBbq!l9UF_lMm zvz%!>m8W{`J06do2sKXw%z8W#N}B^s6+{?{^dZ8yvslE4kZu?e(msh$>QN%(jv&IF zaqp~qPi$worcz3YP!&=}iLk~^w_j*OAi`ZxMLd-!cA9iCX|PWhD=W>ei`Ch*qmz&5 z^$VTRAT5Ncytorshp`ejOIDJm$O#0j6z*CEb#d1+JS%e~e!i#T*Yhq&zYfra;1aUZ zVF@e!2CPCRTAZ*Fndk)QPQic2L_C?f`=9z;#HWRc_C=OH7qK6QFMg)QKWtUS3L)MKrM(3a1M)IJwMzeZbI>b}J~|G4Xc6ZgT$ zLOig>^`Y3p;=PjIPtwDXA`}LY5#D=8Bpv`!6A7^`MiGg_v7bgFsBHyPeP-yQk@3sJGeg(BwtQxYUb*#4 z{c&+Pvh=ukAhxpnNJ)>9^k_+sL5gTR2%`PZfyV{yAsWY0bdEsEXe_a4P>X0#xZ{FF z8XXs6TZ~4>MNl_AF6fs#E_^(WLzc$lA=t|D<0U;o(i0^;2`S?7P>A-w2F8Q-5Ra27 zIuAz5cuZP6s6{*|Ts&B$Q9Q)97>(i))J@|-zg#?Y-D~}wJPcX-J9z}Qu*$8ZkCOD! zND+z0K(zlo@OMH>h{R(lIuA$6NK9EIs6`|w-0y@%8vRbhwiu0mCqdopcS5h+?_|!% z2Ap3%Bj=09Aq&@(r$g8^<*NaUhvK|_3;xf;epvq&nZ-4wUz_6zPVe8*IMwOTa`!u) z==A41{b^3`*X(#LpT(%V29?ad&zn32W&wRqrO5fmey_stlCIgo>~I;XZ*Z`|#U-Y` z!NH~$8a64**~mh}#$-90S7>w<4>qjO=%wnDpz)WgtUY-GMH)7%+aoVwEd3KGx{3!| z5nX)hTOMpmr2gINqCJuNKcZ%%BDF5=!Inj8y|67i#pRWYdz9VjZl;tvDG;7q*{Ekx zo(AX8@okEne^j1Dp)$I#6+bG^qQu(b!j^@bUD!(b;#rhXEV{5w)OL*-YsXrprQ&6e zC&LN5u;pg23)|90dSP41NGl!Y!uAY!VSc*X9X#Ic!d9A~&!W%)tT9c$-OCKhuu_j+ zz;Z`iz%B->cW1DTMSLZdQhEWa3Mr!(ur+SF{X!eU1?&W>h%aEpPLnR?1#F)#)(hC# zb+I~|cJy)_G3_OARG&rZ7dpFurG;<-8+QWhunSmjmKU(n6gg4g0(O$M$#qsx&u>jZ zi|ef7S(IDs`gI?$kH3D!@-=e(`tIcV^`YP*Uccs$>74$jpt}YC-SsQaS);9Kt&?ke z+=2Yh3V%HdS>UfOgz?ua;KTl?_a^+`AanX>BeNHOo#XVLzjCMd{MB*#z+d)59Go=|JU60JotkH;e3jme^j`O${OzSFWHL6m6vQ;IOVS1FWE}@g1bVoh`SQCAyBOC z!ClXV6UJTKRPKsjvMp@@KBAXwD;a5}Rsh01#4_L|+vmfJDtGbtuW}b1z`DTn+i_Rj zOSU{U@fnN@DLZE&Rz%{ z50`Xb2(#uPUb5Xfa2GT9k}aj??J~UED0Wt8^TP`U{ZJgu7mZ{fxWB zRyruxy=1EmT-v<|<*k8u$#$E-UCiK1wv>*$q=Eh=TRNKMOe@^g<0V_Vo8?U7muyw9 zeZ=F=bC>36AX$&+E@^XMmV&!Nkv`lNcM6LbchL>wF4`w|Nj=J4+!5Th3}bHh0&HV# zWl5!!a+fNkjB;0vn{L0*hQM9RQANyMVy8(Lle_wKv2xe!x>%h}J9=Ak*H&;8+=Z8H z`-RT9ixwu!mu%xsU>(L?+$49&OSaM!IZ@yx+pSrfa92>zZ*2puGyLL~w3yUWU zcfC2`u4BPXY8dVL1r)R zy2R-NcWpFBy$oh?PPv>S=O5KI)tDC`N|A|P7Vx9UME?qn;?QN#cpRdgv6&NhcTY&n z9*3TS;ytFF=ubp4I_*TKBK1JPaRL2blgrED972BuMb1AeSm1iuRul< za=8}!8M%n9bXco<TLUp;w0$5KW^l%c(vgca(9amrQLLGb)Q*+DGe&e5 z%LXHjXN**@eZ=F=lZ)nQAX$$m7in`C^$T(dMf#9S+$k(#XZ$|$+ixasx_ZRkfXVy8(LlU(|Av69Q|x>%h}JKB>A9uMsoIwKca z2s1`;C$J797jBj_M$!~HQDDX>kV{Y-xfJt73yfR-M{BC_j1_Uq-!KoP+;SbVz%8$V zFmAaDzN`g5-HiWukOBAWUX9Eux47Z7$n-B4$;i|9e%k9`7H5vvQ{?=k`o$#XrF=qf zVj6iZG@eFSYHX&v$41e}H7MSLMp*l1iyd!(bBO2-6gmH>Uz>e$Tgkc9adtpauBgKwNMq24G*zrbqQN<1(lU3}X16j_zCfLE>Cb8o!l$}>0 zC3f5;U?j?_q5dXhG{KIyVL!tTvDIWu;*Bb8;B@!xC~pk}cHA{! z2Q!Erlny(jfgU^PXqGc=f*o`h3v?rmu|xIRM?CI4c4(dklJ$7(kT!=QyTFc6qz`t) zox&o99dyI6gZ7CXQjcN>cPy~u&DhRzO{J7#hbp9uVn>aeZoklme%K*)nshO-qfZwr zcFeAe)!DS86YS_0I>QcH2-p#K0_!mB;AV*((iAySMA#A3#e_-09XH$e7WcrI@9$In z9%DbBvwREYO^{W-lX9FrXZZ}sbiU-n(A|vxZoY)4tcW|fZkck&JCFtLcrS!;NAd2- zk*M=r*um=4$SlypKPU8Vrw{WbSV-9E!+ola=9CY>EKW5aq{#V4_1zQZrJO?V3r^8_ z6#89g^wtwSE;Kr`@;+!h%g{33cfQ9)vCQL9ya&tB!-!>cW`%A>YQ51!UnBMAG~x0g zIEOyEks{|G74o5SX!2p2bi^wNY8-&E#9^~_WIAP?&&0geF+DOT#l95(A4EcN* zUR244M{t#V=m3^7r{C^YQQd?K&kiJ?k5P8siIn8CLm(e!kbEc|`LJ9`KJrrq`REUq z4jB2Q9xC}b4;zq=dN|SjILw-dAfLMh@?i$ahtiRcc<9MT582pP>WqB2S&~obI1crX zAfpNSd;KD1Brk$RMTxMM*+AH{Z- zYbvFbd{iN2lzeL3bo+%i^dld!)1-?@K7G1a$!B(5tj?w#osdtz&>8vALLi^G6Ih3l z4>wElk*3IrA|julF32Z5qf_^e$r*O9Xiajj=vFYvj$olXAXD}^5L|O)e6NTnEyq6d zM}B~^pO?O_JV>6wi%+0iyjMd2W0KZavA;lG|Z} z?^kROX)BV_DxMqvB1PxZNcr6OPWZj@O%rNyXPsihvMY<#C0PVUR>BD0ued8j&HEK% zTa4nl@g1wF=rnF`-wZt<~IRYQKZ6EdQ>g-$RNBd>^9y-+>XJ4MgAv6rFD)Wd!hUnnZwFM1aCYfJGWb zKx~WAC;~xk5h&K`tzD;BLI4;Y7h^;LD5mL1N#}MriS@pAD|Fbk& z{}YPNdZcXq-L3W1qV*K6^(@k;^6xiMIWx z$U@uk?$yt+g{62U{e`5zM2a~43ZlKmz&Own;_z#V&d-oC4tNz$jsj{C2MQMl7HJd* zu`NcUI0SVRhuU|q=v5R4t_gdyoEv_FEL_WIb2EqDCwUh{WH?mXC*3Y z@WYZ-d3WaqUrpNs8@4Jh4RcM{zfg95it3>}oQDoU{J$Xa|0}W(|2rTM|5LCg?>8`(VNKq@L6hZwm-HW!{u62Ia}xQQ zC2{qG3pB~d|BJG7J5ok|Rfs$@7{0Dz=nqxK3g1Ra$GdRsb>83eYuAJtOUmyrte~)y)ra4j%b(+I@*kGDN zJ)Gz+3?5>d1D8g{n@G&yGzX=d<`574G>0Ctv9HwGGzT}!X^zry9P0Ct(PWxqOYCRU z9Ac}-0Ii$^DilCV02u1o#bHts(A~wxIH*A`N_BqWV_2@JQcf>Tu z-XMnVIJU7Qu%uE-r#Vz1WlqEE1XjH2rrR%MhG~v{P=y@>w(OXgY|_P?=IGPKI?XY= zE>>sLj@|=DOnYBAs&69o3!P1K&_bBzh&zFG*fa+>%V`d2ikv7g%@JTPs15dt`#TG8 z^X62r+W+Xe5}vUfGwOF7lo=PpZFKk&h?vBy1gD&**@Za|LpRg)YC*ISaK7!uzjat!K%91n5a*yB46Y`x<~ zAOEe8h4^m+5yyX9Xs}44q}xfly`*B5qIAhS0IL2e9}1y^xUq8 zZ0sv_#_ilJxxI88hx%${G~xDpU_aw_vDF0X$nDy|>F%B=Zw&;u--``YZf6F$ozii; zG|+Q99mSHONSkmw-OX~QF}JH;`-sP#=XTB0K(Zds?b7DJyal(1B7L|$?i3a=Zl@c@ z?X*vBmwJ@jxg)rJKXUsTY-4doNu`u>yDFrNa(j)NZoklm!0r22xLxct>0)wwpDtEz zpIsNLvuQ`~jU%SLw&eDHp)+o$g~07`C$J9Vc5as3E=`dW1-ShH)+TSV1@-*afzaMr z-`M6EYqWI`Yt(OS^Lg+u3%A@8S>TqvA!?rozZWvA++shUy7&HN{O>!jcyE}+nPWeS zoPSiG2WMW&C-f$!k$s@?G{REJ%lfmYk*g2rNh7R%v&D}6;T$5mmLlgL73`pLXzXC& zA+RG9i?Ab68v(@H9@w!joG|R*W-sh0ZKT*y$w(_520IRb7gg-wF99jQ^w^Yxhx&oYXo4NMur9DeY&98^h#lI%>F%K@ zZw&-?+&f?gGl(6O4m+fQ9y{o0mNRXF9dtL#na0?mdhH_~cOE-5PXoz%Ja$N%!;oEI zM<~((~=SV2`%DW%w<3Mr%5QRAlDFSH?G z$04X9o-PzSO}d!a(Wi?QJ7(9#>TKH4`w=@1g`+xM*e`U39kdXzBkly&Vc5aV5<8?R za-sls+?TZpb_DhO*8QNxz2V2>d27rQ{*Rvr=P7Hnb(mC%d(3l2-d}RZeUSz3I1IwL zci5-8<`jQLgzN_51pq8?lU%X!GRk! zw{azkM{^sS(`>~9(Lx03NQ#_)RIq`{p|OF5hrotVEW(CFZ6kQB?STysfD?ud-0X!7 zrHvFDDj8{|!(hWv@S=(hJou{EKnJkyGW~9Fmytg$V#9+dJNH9MY}h|w12c#XlnxtM zuEYlUy#O2Z*Fy&k8&VGy8=Qv?ut7bX=pGBR<{_|QZNLU*5F02RHi(BF8}yKkeWlK@ zftw{Zl#b(2KN=ZLu;DoDXR{SztI3!`Y|sWycOQ)M)<9sx0RbDBL2RIO*dPt`*g!|K zoM{tmpu1VlG{y$iYaj8r^Vpzy8c5dTu|e7#hTH-hLXke$5O)fT7&g!i!v@+XHb^~+ z4cxK7hGVdu<(f(<#RgSK8O4SgH{E`r4gIh|>@?|OVnd%UR&1DE7pt>rM<>|OFLZ_t zv=Fc%?gZ9h*uc#a8>A_6qKL2|s0(Z;x#2>4kL>r5{ynm{*?VM9O5P*Gl8y2#HJ(hX zJWG8JbQj{kdp?TitcV-#jc2XDBJ&jwK^C~-B#7GkEGHndI$x3HCp!HmywCD5n8i8e z;S@RlsNQE`Uf>LUK8juz^BDSk6#XkS$|4Vi#xf~eCg&8ClN=Gg%SCWhT z0zoeNd!z$KE~$q~F3!USmT(p7H-N&Q6H4x--pFl3mAh}RFa*+mla-pMH&a?@+ z(A_L&8k39awU2n*d2-P_4J7OFu0C?qZF0<=mbvEtj zgK@;PkAR~(;n6R2MlQ4v$R+Ls)?wtr&5~TCDRQC!xjc}y$%IEx&u<+G?VWX>g=ehM z)={jH_gVb&IZr?qxaElu@$)&SL4)sSNctp6pDgK9khX3f{Co}#^ZA^oQg%*7%I9+q z;SZMIBg2aIQ1SU3O80yY%T=DwaaA{XKBvBFKA$tVUUs9r(;$Y#_vrbYpl#Jt`2iIH1Ukr)wQT&6tVf@+pn)p8pS&0AH5OMs^fhNmyNjs8uC4Dy1 z))xoIpN1L#=TLUeLdy8#dsIdInZfu|y7;qPCH}7J2Jx@2n(-f8ZyA3vB)&)S59)^T zXX|U?|6F7t{^vo&@qZpPSov1c=S%tmNiRU!`qJR|(=g+IA!X-Wq>Mkl16IVJ8H_)r zi$BX%;_s?%5dZqB8UMlcmhl%u;(HYTpl%p{w%)~m?nrp2>V?Qc{4at){M|cM7ekZf zFP8Krl3s$e_2t2lr%6WsQp(PYkTUZ4R9+EzW-#)UF7hl_iM*@2LFDVJX5|X{E$Nq9?uqL3SS4es#($-f7$DSq``&UqQ zUW$~l$7^au?3uyXQ@Yr*TqX9d>ISi|ubQzRTyGhBF(kf6u@CCTv1j{T?B|Sp7vH4* zs?671g)GGWIta|yU|MM8Ow18&g^f?*|GzNra~tM%viutC&}+`-TBrZv8JM_`ciOW2 zl}`Ve1+kuB&iwWfi$~_!)yMFUsk{c3aN+e@ikyFx%K^=sn%CM2?>R`GPVdZ}oI9h_ zJ8Y0n=FFX;<5*SHY3Q;!xeY9!lur1(3j6p8AJ&QqAAX8@ZfjfYY0a6{gS9m;#L>fO zW=AJ{=w_teoF;s(hjZwR*HPsBV`j}FbpCFLOnVg)Rn|=Sj7^P|-<+0dGkHyp+Tw*c zT1+Q=un_Zxr6Q5r8Y(n?Ja;XV;D-r5g_*Ic)LYToia7EO(BSbq8zBP-fh z>~4tA|_RQd~V;+~Z zld*SjH_PcX)DMGt{pc?1Q5!XSnCcPir|*>$rzoOZT<9dD_fY#xuk)v!h3v*{*Um|VK<$=K-}ceKy8h1>RT zp-!l6>K0-l>wX7_Z{f0{h4G=rDB6S?H_3#{vy~gPv*fpk3AOOTq4c4si`6B-;~o4) zaek;ml4_kwKUYyvT|7nqUy6Cu5x-}HVZbZ^0bcaM;# zbN4RdoDqK81K(l8>F;gGLeIYoBDqI+H~92WFlUy(1DU;e^PNt=3GWfU7iMv)eIG^6 zKdSc#nU~%pq?g4VLA^&v{|b#F-RMsG)|29WJM*nRN7EY0|_qREue1VLiScHs;+UPCT_CUt>zzIV} zZuYuISlUSM5mqwNN{6{e_(6D4g*qOpRj8u_S3{vPRoL0#&hLY?!_L0#RqIn=|6?nhwOJj6Z1BkAEg zglm|=dxVq@>cm5Tk5CWU*jMW89w9f&dxWLqIMhFcjN%^Q4LG-A`wKXUuDwRLd0Sv@ zzpuQ06y*)*q>gl?ulr_)HhjAKF_gE4Y`DIo#SGp%q;xb389JbIwhJPk1G@jxeS4lq;zT`1BA=;F>|5d%89VL(UwBoe7d zfsQ)@=&(}Vg6@sj#`=;=H0ff(T%Rsh)R|ou ztFviGA2ApA4zX&R-8<|TIzt^=2=@--PGB8|I@~N#N17rh5TFj$Mzec|L2c7t#k0~2 z@Z0URw!#C9bLJ$R^JZ`cdFIQIDbFkgtK1F$9nbJg7R{l33He_Wp7}Vkz%!qQFrIlF z&UAB7?{)b94dIzjBC{9Ie9GxJ1vUi_ip^I2qj z@S)MMnbG?Ke8z?bpB+&=Jg7ZAXL8PrJ|0E)0^>-A!VkSnGHUT>dXBCkHP_B-wuaQ) znYp;Sb~>@=){vUp-WicyzULm3bZBSn+};I>HDj{9YVORgP)UMm!n-4<)k1>#=XJY6 zc5jA@=#ei_AkLqBb0fwdRRmN9uEM!Wf8~%0Tg#RZANHf#}Psm5j7fD*)l9%?5l~^^5Rg94lFl zo3mlEj5*p7Sg94;mB}*kr}<jn3_ZMF zxQZG4S}UdFD)G>NtyO;qv9Ht_S8-FhYF^eU9mntIOURgoNicA9iCS*lMLD@)C;i`Ch*qdiOE%dP!F zXDmev;mfUYC$J7f;wR-oZ5t?UI*!)AOEzm)N>P-+662` zmO275WvNS{yAJ;yOY!U#vD8nH|8-%huOkaA^(_cvsk3l)+ZOe{7yo}PEcFd!_F}1T zI{l_#sVx7tvv~OZFeJ;}&2{%AS!wR-EkRh^t-W_3tncA(oR7Xwk@Jr#VKFZyEVipa zC?zbmsL=EvtnVP(6Bdn*%{&H z%+Zd>a&A`$OZ;h0So|ea35!OsSUb`tgvC=23G2s{om-KTu#OFc#S9V_r6VksD+x<} z?I0}u?b87xtkgp#EazbZ!cq^HbbkV~<{=2{xIkFUAYoBD!V(WXVd?K6_LVv#EN+&B zRXUE}&kvC?Tf+J&${1mZ-6q2?Z$D~dmv(=K^43@o)`J6KF@uCf=?F_2>j{faW4U^y zO$dwbW;xTCuvD-8#Us`emgZ?tS&t_yX>*{Hg0Mo7K7O2&-S{jId}S z5LVm?tiuS4nGNEqt?FcKN-(U2))y#c!S z;=f}op1&f-3iDMzM-~|CR}i)HRlh)HFUI<%({BpK;(XPwVbjf5@lQWr^*j8HbIta`YoI=n&M_JnksFiG*!t+D;GBk9h|c9=B}K~u*EnqmfNiqg@Pc<5wZS2zS-%#Ef3z|A1&=fOBQ@bFT^FmfX-6kC z)h~2LQ?w9hD((cc23d;Iu@uXdEG55ou$2Dx>433R>Y=if^RNL+sfSCt^Mi+A zsgnXrF@r2c=~zlU^em;ngVY;(9m_e4JbSx!}^(;lF@!cq-O<0QV;-fA|W0q3A_7{&>&r+JFL1jIjrKHV) zLkgA(Mf$K*+(9g2EJZhrrD&flCG{vvamRwC=3yIOppjHcDNCtB$|y_Kxasx_ZRp2R zVy8(LlcoA}v9i?cx>%h}J33*hexWm#qJ_XxaVM}2V<~QyEG12mlSaf+L4D`46wh8Y zEVU4BgQX@QYFTO#GJCPqVyE9!EVTqS9ZT^~&r;L)8)u%S6gmH>vJ~@DmSPJEa#EI} z?}erZOHCr%vlNYv&1`@8MzPdhDBhE$=w5%X3u$1`I zoTd0nsInA|WI6MiuoO=+WT|Z_J6j?pOPw58iWy`nO2<+xSF)7++QCx#+ouD@QmKc^ zQqIE$ETtYU>8^lT^AIfcu)tExAWKm?mJ$y=OX=?*_LVwgDQ=c5RXUE}&(_G8ElX{O zGR9J3x5+?DmeR&9?QW0q)>yFA!vjk(gDgeqSV|h}S&B|)InyRAMR&8DY0Ofp*Z$%W z>sdBW{|Kb9bvItNm%l02Vv=NpAHydr5-9_IS(5UmU_6PyF1L9hajv+2Et+n35(JZ zmU!q1OMeHkuhbb~akC_>(sBHLRv}}ygtZ6C7-5OsCc`fYOB=hidk>Vi#)7aO6$pzN zBrHltSkhQeSadqenKmITx|`)pW5QCs_7{&>Pgt6#L1jIju%yj_P71;bMfwm{+(9g2 zghe-uuxOuzCG{v_amRwNR%08VrIS=jDPgHX$|zygxasx_ZRkf>Vy8(Lld$@9u@cto zx>%h}J31k(exWnMqJ=J!Jfzh zW9dWyA7nT{tItF_ovlnCC%jq`>W9hqn_l8-VU-qNO`A2mf1Li3) z&6}KO@AlD4<)eA_ZXf+CH2ONmcr+ks_;m~(jpAV%YSFm8%twC$2|=xZ zM5iKkEgmh>_xOr4mA%I|XV80mbL>67)#Ky+-{PAS-r`$iFY)aU=Meg}6gmH>pb?cr zuVcW%DH%0b#~>7o$S6@8q{P}DWVA1wFf!t%lFnA9thd+!HC+F?e*KnEOB_A9sUv6vJ|0yulmnq__!O)nul1&;4y(>m?0l`gLD)l9{P0*^pKUa zMd>SbMlsw}ikX{rO2=`iABc=%9RpjtK-MvE@7vA2I9ZJ95R@^B5xeOSSGRV7HWnXx zLwRc~)-HH#pcrPzhu$C^#YkiQ+68nPA9_Ptp_m?P7tmdN=nZMSc7f`(zjzFKiqSj` zD(mqSBW(@@P*6-L(uZQ=4q_3b7`kB;L;Iu{sYfY>I~Ejk5VrB5H%X6gmH>FbtJL zGYkt4!7!m%#4w54a3a?BV3;G|gfR>^dofIDBW0LMMq24G408;;s4@%>)hff#0emcx zem7tk{Cv5 zV3;)z!7!%;hG7O7hSD*Nc<32M582pP>WpEySu#xNI1cp(A!D`-^AMCVh7r3>1~|^d zXk(|l$D_P877X+Fz%a}p!%#Ygk;Zz4q0?E;v=iN0o?xFZ%bEcvAPWq0GK4YAtyuW-OaRj;=3?-TKFq_Mgv^3rUW&CBZJlzRHF-EP zaV~fSMb1B}U%F>rAP!nkn=xNJ6nlBTV5za0w}!PIXFi5)%x6%TfgNzASWH(;Zp;M4 zBT*Sz@hFO%e^frUM&;0hHwzCjc!y%q;GL*#9F4U-2JeT#2^+k**=z7FZKQ*DB_pkL zn8Ewe@S-|+^Ejvu-gE#TTch6%25%nK9K0V#**Os@2k$3vwAfD;{9y(MZ%Q|Kvs^iN z%fXDnTMunIV1sw+p$^{8!v=%5dN|QN1!m1d4Bn^G!z=OQ!}r3F!NHr-4c_9RAH4OD zjeVug25)YbgLmmT4)w<%qZqvVO*%Xt``Lgkwwj#HIbdr8r@K!;d21jB>?ei+n;9Ii zDcyiA4fF#x9mV&?kTw~x>28)YjR$PiYaj8r^8>c#X&_mTAF!p(VX!L(>`tqln&UckTN=8*SP8S3vCDkcJ=G>Vy8(L zbHMJ?#X4Zmu8Y;#w4;;H#P$oF4cN302JE;KSceVR+$;xdX^NaEFkpwT%LjG&nb`6> zv7;C#PsN5zV%pB7FqoOk#+q@Q=V2xBSd9o`O^&O6)=-6+On_YOKwTG4l6!p38Hq)J`I_*WA;;!iBrH+DRTZ%9kZF2j@h&skJ+a~D*`iQ0zGSleUFelnb}F`Jvc#_ZBYI%Zcg z(n^OJv(JDR)iImLL3PZg1Ni(O{cbR3^Qh*Sy^gZ;M5G+EPYYu$PnZYre(v8{Tp&zsLkd1w%&c@pNaC;K#bW>3S%}iIA&A2FpF{nZ{$b>a~w}-1#wE^E8mG$B)_4<}ltBV|FOgXUvW}g+*-4rW-b9(>}*+ zsYl0b?pTc3GuXyg7bTTaI%cav%IKI~~ikyE`$86@MV>WHZWA-`F_%WNM#%8`>H)e~0O*Upf2bG}}&!x!uM`g^W za_BLeg@+ikL$PSgPSiGh#@ZfZb_Y(_n9a>zV|HmH9kVMLX{E!A+2_KG>X^;rpgLyL zfh=cUlQEk|HOK7pDLZE&<(U2CFlIA@V>YE5vstbjv*lpMn5~C49k4Mw^-#xb=V5~} zTRoiUJ|AYyLyXx^31c=hIA&A2F{%q|_rp?)4RnvB^mz)RnbdK5D!0GMr~rtz4qdhH_~ zcYe&)JPjo4@ng2MIgEG3m>r7r8MEU~VG$d%>4uHjw9heH>d`TqJ7Ub1kD5OZ+gYxu zl+rO<6;ejW>>4-SexVIv%&vaaT(2T*>$lxn|5^aQS*MGvoV_%!k8U* z0_(6bo15jBElrUV1;*^~QS+d-kDB8;xmfG%e|(+IlUDRy^IK5&tui-$A+i?CTm8r^ ze-XCufm=y0mh{C)@iDHKK(sUYrs^7ePHdVVK;0c1i>5|fdqA!^AX|B&zrBG zFPxss&svFXF^cu^AB6q%JMlq1);bp2-L}9tX0wrtM#e86;iC@tH#Tz3Ye%-(72l}Z zN4*+t9mhTSefPN|d>jc=kvK753eOOSld}A!*uuwVCA}OeBJgsE_GtL3EF*AVd~t#i zz?YJX2+#&1a0Nx@GNg<^+af?MB0%B3C(9x*f)CF!0{FCHT?E9o7)1o|fkBHvP>=D; zdu*4+;Q1rtF9|Vt`L$&X=+`K}x8q}=$HJA!(imKYtt`J<(rb_+2G>Hg=L|dwXag~L zB}L~INEw4OEC$pf1{CfnV39^gf!G$K(NPf8b`%VZ0sV5v!MqXv9`rc44q5tpcr~{0 z`AA7$E9vz}5sBA9wC4^y8fXcTcs)huRY)0$r&}bbMI0&)SMZ`wirbO z@M%0dF9h{i>ttvLpBL!YXzO9R?}~fO8Tkx;6W^2=yboE3!EyNH5w^1YgGkZ(4?(o& zOY0wwV$%9YV1uoHB&4;TrP2BuDLU^*%GN)_T2C!nPqAUyTZ-1R2#h=$M$r1lK-9Ee zY>QE}{;}9k$AzFCYdsEH8yB84GJat=Cth+zc}}EPqpef8C&z`+k&l&a|1h%9_9O9u zDr}+EAA@L*4{SBdq17L!=zIhzTYaXrnp(7)!nK-38ns$%i_xgnL2a!r&Vy%G>yMgFSyLr1d;) zAO@eK=zJ0>WAIFi0kwz$#fD{XFM6IuVB|CyLC>EKQPcBcTZ|$GPr`oM^FckZi8qq8W;y!LLAmpbiRX>aX8!JKrP}x;o`s|jp87-#b^|V zpl%iidQ}sLA0kWR@MCOc`A;PMsiZ$cia7inqP=)v9B2t~_&Tpav0!!MA9IN+M$SJ=Wj)sp@ODI)M&i1x(52+#&1@H>jm zFOf0=xkZ3lM1aCYfJGWbKx~WAC;~xk5h%uq+G_^-RTG2XBTHlOM{HqvVM+gt6fyV< zM0?4=7|;e{@K=h?ACNKz9g6|AhyjI*0gE(>f!G$KQ4E5*X$i-DdW^}6YHWa;nW zZ`jK6zf1ZLN&kryk@y!xdr~6N?;4tx5Q%?NbnZaPNOUa{)FKiT?&^s}5Q)Lp&|+JR zA`;;mI;fjnL(?mF?c{$C|3Q`>3;)Fy)(^c4(=Cu90vSYmYT&Uz8;HOti*`2P4@ThG z76EDz0Sb34ut=k0L2QfB=vWBqrpE&PsvHY?{Wu4{>9H`6O~}V2oiFJ)Qbb|_M0s-(ahRs)EJDgS-~&@KuS6~4K;h!RB8}o8w#8@^hoEj22YOW#ho#8U zI4s8&mbsF2Ye~03ia2Zw(Oxz%4zz?gtf1&DL&`XuYjL0!aiDNI|1LHtTh{KK)o$Zk_4(C}Ms6`woTpU=W zQ5?j!7>(i()Xm~RuWI736S6c8yI>3JS4i5DbXTN^!)_4mtp>({mJo+k6rG)sG7itP zI8ci?P`Eg-NTWE2Z7~|fA*h?hfnL?bVKuTe4!dIu3qeSF4@vh#ia6X8qP_LNIM5Q} zuop#V4N}J8e2W9Mhy#U-1B*0@gV+|MQ5=H0SsdtRAxEdtac0u(L+EYc_fVq1(x5eRCFz(9tiUo|mUi!6=7 zf!MNbCE}v9UB-{{V{4eUY;D7g+15Me8ZtY!i#1 z^@Hcw#I_hk>%$ydP&b=nqgQUO$+!J*WNF(Uh%LNHh7@f-3ZlK;z_znA+I}=e=Ln>1 z`-RqaYSDHI*LD_Z)ON8gMx(X|b+fk9t4iB-p6wW9Y1@y*R+b-!6m5SnM0#Ny1{yq(FX`hXJw?*TBW-Ox zIQ}%u_&m+@Kq-RR{Or))C z2gjd=8UJTdcFsV`_`f*BpBaolrHenyRpRfeZV>*5p~Dcg*n%PSYylFVd*tx_iiT07FMosewQ`>p4}XY|qYD02Q$dG40V=($_* zV=Ww?oCOyf8oA0$V(S?YUbC2D3C2cm$SyH+WZu zX9qradjVzVY@~ed_9Z-t>iezC;B&W>?zvl*E1$cSpDG^j(jP7(V9(vA9_n+q+`&9- z@Z7C>IMKb3rPM<_cY6sv#AGl|Ud-Tgx0LR=Tk+68cdLhN>??Kl+$}fD=Wa{Kai~8Z z8BLzMeIfR<=WfMTlZP_-+^sfny89xOw+7<5+e_KN_v4K~JTr(4K6gv$p1YL>`sZ%x zXqGdzV`UE<5Um$xBdex+EUHC!vz%%C+^y=hk9geq=WaDm1Ic>)bGOpw@XTuQ+-)e* z=egUsQ&_~FyOm$lECZX!`9VW!*^DZ-@^13#K^5+k{u!MfK1ww zWZ}@c6rz@WUX08FS3LW?#OXczT;lYbkbPbTvpCsYPLcDED*G@mWgmK9aE-DL{Vp`h zKJ>WIDEnLnjb|TP9-BFC?MAWBb%2*1>_ZP7u@tL_(#=S%>_cB8_2$GrFNbsJqbn$K z{!w8cDu-qt79N6qLa~T_618DStnI-*FNG7vKHTiZKBbM6eJUAgrNgk#mGGj_Z2#oOw;yhi3<}&()Nji;m3S=~4pKGz7v5(kl zGBA>Tw1LyzSE9T%5bSe#U>|0XeJCCKNCQ3l(9tYs+Jt@RE*`c=8nch;wU2n*dG^sf z4J7OF>?3Us+)%JjDAI?0;!a@^V;{O`xLT^FmfX-B`D?DH%*s_fG*bjCik5ZEW~ z1lD2f!_AU?q$zTu0Q;Q9+Jt?AdVcF{XzxV!;Yn+>b&gg__IWed2kW2XgmfLUz&@{q zF!nhLb3VVv{|>n8-7@dEB?%qgtf#Lli*Ic)L3UBZ&np(JF`RQAXtkAdk5bd|X3-i-W6!EC9!V+7T<;?T2 zw0LT9>o8O?y$D}{xj*aDyL~*J@Ov_Er|i56DZeLkMSvw{@Ov_p4whK1{GJSd^Q&=g z(lY=ZFjz`GR9JEzI#`;Vnrt0K54j}!(dr>@3aW=oy6=El^AO*YxiY{KGx$9jN(W2g zq5qzY9NtaD6Yn{LbavAm$wSj~sZQ#=G zyHMU5h;PWeBES+e_zf9K2TRgG{|y;BiZ{!U+OZNQil!!~aH7G-VopZA>yAUxrMp?q zH2#K+>a~w}+<92iJPjo4@vtOq4xmxMQYg{~mf}uf5rZYVVX#E|ge9p*VTn5emO2hgCM@;oVuhvIb+I~|cJx(*rDwxY zz|wL%5$PNoeT_nAutW>t8!~YxunvPIZW5NZ;*5|qMNSm>hRkzVo4`^~&u={!TEJ5A zes;&^iGGsI6TQafiSV_gXr5>eScmgOcZW>piJk^s2mjqYdY-dJTe#uHI{6M#xJUnP zWPz353lZO=d>=Gf{(eb6An6As{SeaDioy3NX_)sYZ=~$J2PyASUd^AZJ|n>l-lL>+ z_b6Gea*xtg-QXT&ebu~2Ik?{P9;Fx(-=lk!LEZ2kC0p%a+UbIsvE?=zG}vQaJ^;x z#gO=_B)wVEFG%`Dq^<1-$Df87|1VK?K8uv` zzc$358H_)ri$BX%;_s?%5dZqB8UMlcmhl%u;(HYTpl%p{w%)~m&dBp|e)_&#t9=<+ zi2v6il6mTraPE7tT&sN*nZ2&nZgF})PyIEg--Pqj--KDP&bKIX{!yK$W?r~})5|q_ zUtF%~JT?6;G&)aBj|+`nuH6cazg(l`kASaj)? zsO>5!*7msc`Uae^OD}Hrnx`&pr1R93jI`2W=Bd96FRGVbJc6s2UUVSKnddLPc*P}` zUR&at&s}=)?7(^IA5eC_f|T>rujEPeFihuUIWss6Ln@mtM|8cj;C45iIp^qI(<6nunODzK$MV517LnyU5@?HKn`s5)b`6wH~r^S}A>{ z&Mv*USzdaTj^j}O9x{qcucjZtT8}bz876j9Mz8w_mNs^}`$Lqs#$wL;Rcx%@uV)75 ztSQ}Pm^9YUS<`8}-;A_!8P?-|J>AW6rtzG$>b1Xk4EoD3&C{T=9)B4oZ4Q?(#bsD1 z(&sWP?jRPi%P_iOmtnNeYYC}GFT=PaF2i=lbGF^@V>`<=l~Q^crV1&emti$-y8S{M z!e!Vls3N`$6FW`1n3rLFx>zs6X4l2)Y}(Pu2PFE1&Mw1fANQ<)EJ+vlj>b)agA3{mkh%AqV{uW^v;A6-CZJsvN|;l!NGf!8po6^t;d~2hrm~ zqa5^q(0C4_<>ZT5v*)0FPwdG-^e`eDv^`ymbdS==Fhvm_ZJrbQ~m&^&CW}v7QssCLBa}vz%$nL8{mO;xXts zNb@wPtjBYZv^g+D!9k%&9}bE;h((Np=!S6+?URF~9_1kJSa8r5*v2wel1eG%AXP{i z<)9ij-F~4B{WwVMH0fe;P@gVV4w_vTtFviGCmhr-bjCrn5I89A1lD03#Lbd}q$zUJ zh&U*y?{p602`u8E%gXy=^WZr+Xdy(xL8o9Y>MFS}HXoV2IB4AIJqImt`c23|i(wWg zo(YPae^fb$c_|0c`+{+lgXnjmQ4XTVg+@7OOK3a?(el{LIry9@Zc%QF`F=Zr%<8^a z&AY4gFd`e}Ai5c;m4oPOq~4r3XbGG{A5Bu^{A1=lc=B`IZU|U=mE0wva%c`>;UPFE z6pJ`0Q5%xP+8!LV2u>IWakCc(l{Qiis$`^<4#PoH@S@5=Jc6qnLvQgYB6IPe}P_r;h&4x)4%#BwDE$xjs=q(59bU>uZss2t=xY`{V4;Y1e?r4}B7 zgKnUQ?~waq%peC*It~&KJqPI_8~aL~aS%644k{hTp+1d_f`e|r%XQfP0%q{n+C4Hp zgS58aH(R$td1E4}qsf3tCensaceh4)>l!f88v_$DgG@x}m`ED#nTQR@a;8m~i0)$b zKcq1esb2ez$D?N=&C>w09?wM5=D-sL6NMsum?-Wn7BMEG8^%PmPbQLjl!>@w!9+{3 zo#mQJDP%8?6Bk>*>CI~+2S7e$WDOnl=vPQPi7Glg=dAfK^Bc9 zXq1UoLgSf;md9ppIBcVs==O*9oExHt5#=Zo(alJ$OhjKJ_2$GxJHk2i(M}XO|ESCj zQ8_ddvG5Q~6pBSml&B3)Vr>s5x+|P8CgNrDOjOB8D;^2!B$wAuK>Fz3&x5k2l-V!*78RQ^J$3fCq&p~uL%b7OeAi9esZjr_uq92AQ5;h?yKSj0GpZWssAJ~>G0Q4Zpc1qa<7+gQX`QYobz zqzWmc98}|`+b^`C9|wt@CS6Pp>eI!_L9^>(bvEtjgoFBp&Nzq`0tdyNz&ebBxLI&kFGbR>MK7kp&Lg6QY)bc1LC}4%)-%JqO*x={F$<-3w-M;@O)b z=O0xLVqVHY^uAym-BjntbH2kisr&`0}H6dV7YSo-GGC5b|43>rR=OhN)CE!;2>s@gD4#bv0TYP z@>2x|=?|9<7zd>uDhD|a8*q?%IMF=-X3axz(AxqBF@qdL={QI{^cq{zztDz$93*y{bTK)oPZui(&8~~p*|eh*4(b;=;~-iH z929o~>o5-DX30U)6gg=`92C@dItTFtR>MK}K^8dZeh{@BbOXqcPQM8` z=m9W`6VKrkIsd3~5c5(FqW1;kC_ zFb?8oFAgegq#RVqNGlzNgN}q3RSx12T;(7-fG=0j?*<&ivjaKk7|PDUNXbF(2pq%= zauB8CAeJjRNPeo|ApPOe0pp<5L**dnVFM0Q4=1`0f?4wr9Q4k>LChcrQ92G14?PFz zAshQjopBI1OAaa>$Dw`{GG@y`$D)jJkl1Z9NRorJvD4k-P~I8~4tiJMAZCz*C>;k$ zV?77aX?(l`X%h~jyIIaO<{;H;fAJXf9He;~RMz7;NZK42qTrxVqz?zh9mFEWL3G17 zi1x`rQjc;FcPu#QXl!S>rcz2dNEK2>IjF`>w_j*OKMoQ*O}dyI)TfJ;gJ##o>TKH4 z2?zBHopBH?1P+Qjfpr)MakJzgX^NaQA`S}bJDr1g0*g2ZUt}ElfxJWiU}S-VPJ}QH zx)rM@pNZS-qj(sA@2q9{@yIMV=%sjCX5AHAj4U`O)79r6icFjiPNvBD2fi1TtUk}Y zKqs`IHe>QQ0egA!V5za0w}z*4Wz z-_FAZ862}I-Iy&6^kX(1&2pwq#%#Ka z&jTTi$86PWAMv>JW47jLAX$$ev!%^pyer1+P^8b89d`Y|N&8j@eR=j@jH1 zW40{2^(bs-xu#M|$81$d86C50+;sbeHiR*|y6l$NY0||Uv-@x?8tHH;OUYt-HmOR?w>%chB65?PcC|n#^q){Biwiu1#5Y)}$K(A`zkRwau(8U(M zl_KeLBz-PY#Nk|s_6`H%Kud_jc@&)vQpVwf76)n(2MQMl7HJd*u`NcUI0SXGIMAy~ z9Bz~I!}E}(ad@{A=-D7IGl&2{p2Hs&%?$dG~s;6H3!JY3TX*( zco9YCe58!Shb#`%A`TQAmVF=_S&=Qnpui$9@&Xvya(?>)h=uF#j#XF3=dYeOUsqh6 zp39XE#kLql94^Fuy3%1#kF{P1?QZ%F$BRbBFPF~<;w(5ea?NW;wy|#r(yP(di@2w* zPssD+dWpkD$kI5x7+YEX5=k$S^irgV!(|Zd9VHGI!Gy%&Vr(!DSU{|Z11%vAFQw>Q zjFfS>(c(ZY;y|%s*^NaUSOi8cff2;vQiz&3h;1>7I9!JPYt)=NaTpu<7UJ+jiNni~g*cpouP@MOeubo0O8N>(uR@AwTn*9QNuqH%3`sOzjtxfR z3P?LDXb;i2hN5#hQbyy$77c0<4T=rRK3YVBMPTF=FoI~{6_mPYh;1>7Xk3l`G#WuY z*185-v{8?X%SOhp4#&l7-dG+N^lP+rt?tWpE5rDCEwc2uxDH!c{whiTpSdf6w`ywN z`wVxU$8NXjHmIvfDnrVY(jaLblqN}~Ty6=Sd$~fIko1|pB$bc~Wk^VrBnb)WBU5DP zGloq0zt8ioefHkxPN(>PKmC5KcR%ah>s{}9*YvEt?>T1?(|aYANGujnbX2wL1T0A; zmOzx;Eh!@LjEMwtB@z&>bpk~s68IfYi9{C>m5dA8rcuv2;bcd*PQa^j>xAx~OGTw| zSSDBU-Qr9iVEUk>5{Km?iW*lN2UwCgJOoj4pQMPxvnCG6l{i4S;(#Ji#eueI)Ds6M zJGwZ)t4iXqLR1=uRdVGIJF;^1UQ7YBG%NgSRLmBwMcT*()yGTp%Rc}XP>FNi2Q zy4pCvlEh&nM9H&~A`Tl&9FQwfI6QCSfLw_Kgewjx5>*^%n?^lxaI&L|1H7sv z4%!+#)3-jWn?*l6N_ zT!{mOD-I|URUBxWMm=$GvZIRwys9J)?}$ZzPqre=DNs7`DACHjUEK_U|A{{wpckzS*=LxzctB7n?>AX?yi- znzm_F+U~GvC)==T<!AE^$X=O7S9ny;X-+_)FS7qdqfoDPUcQpfY(iN zg`MzAzLouq4wY5@O!7ggO`d!I0ucfz|Dp;y=S3A9Q0Kfas(zBY+%Kw7D&p60=*?k$ zjC{-Rh(D3pSI4fsffyvR|4xMXGpd=Is;|F)z*FhIwfQ`*>-_ zdi13kZj_g1ZSW<@heR#kn8TE%^re|*u#CPmtHe#$eNG#kmu79teMvIyMAOB1X;wuS z>r1o4>tb~_vZMRO$ZypgCywe5`&AV>^U@3!oR?Px4;|ouaTzOV!|5nXG^UiEo!28auj`{reZjqu2zcZ7cy5T#sB_i9n@>AvdOUXMZ z|6T9Qux14cPt-c`yMEwkcaoqolmsOON84&R8ghlBK^)2%Y(Mct5iv4IjL37o!6GVo&PUrcDje-xxlg0$ zWXBZ_kzDiqw^EJLtsk^xzgC@FrY0Ysv5?9z=DoT*A5|K>#ei=y%w~2+^qDrbh#gCsYtGsIbPD%CkVi3pTH3SXOcli>a z#p02M-^q?Il+h+PsHA>jQ;Ld29H0lH@m;WG~DVmBc?= zgg5>@FB^qHvVXR zpl}6mmH5Y4r%V5Q!uZz`mBhb}2#Npsu{GN7lzxkoZ-bB=`H(o%0;csPEgZ_oca*8b z$e)1=#H*8Bn8?E;G_6C9PDzV860_WG^F z=BLY9GP9Pag{CK3h|7g1NvmqySS$@ZDz{#PyNmk9Scws5O;^XcPNu9Lr}~Jy|I*2{ zg}5zU+!7)LQ0`=kOwY-bev~_zdUNfQDGEn-GG%%DWasW2|&pDyM$rRFcGDW%Y$rLjkzoM%19uAn3X{3jGGIed6!eoJ=8ICsTUpKAGx}_4b$+QwTUH3U{a89PHqzW?zPTPSkP2Gs5i*YioqKn_8wZrRTbvCl2 z-;@zk^sqRpC)27zXHKTD;G9gooq#&b$rP92lPR0Rg+flI4ykmq4XL!xrNsgLTh3h~ zGo`KezuSeQ;BPtQZ0I?c{wlnsq2$+zFMlo_EqTTA-^GuxVpYOTj~A8DffGe|xoJDe zkxwl%ZO^oWq=n~I&rM+x-1KC~k`p8aH{FS;x=nnRPj*WdxGAKIo1$DfZtAK!3T|3? z)!?Sp*Bj=hG(_J$+|gx^1o`&eVC-zQu)UikVU9k^Z zC(69|l;?soMJ2KCF2bA(cFWu=30hX7%(>HKe#r+XMOo3gpqnfIZ#);AEoNmW?FkVA zXg)6TPyk)zp#WamTwf0b@XyXs_J5Y-xYKQ1b7 zvwt|{$*z|D{}1{4IpUmzz86FYpxno&k$J>?9fgm8uRFy&d_5xDP-ky$1$@1SIAQoY zE-T{eVH=Try__Pl(j(#Py~T_2d>uozJYRC0!&1Uw<2`pz?Jn zz}F#Nd>!S&e4R5;_`1$VIAHjCq=(AaT^>fk*VV(c(*9!Bcqn}R9eAjG9SZPuNEctH zhi<;EL)Pmn@(f?cWtgvr9hafrM-8omy9<K9 zU-xzjiWt5QHw<5geeiYGqkJ7V+8>$jE7$&zrYxm=T{Bol`FbU8y6$t@;PCav@)Xd^ z*J&r3E(Tw(qKn@o&pW&>R%atSI^rYKRfW#*by#rty0;ThhvDnE4D)q1g$sq}BhyZ{ zp&T|}PZX{&M%s9Z$V`#;zhewv-!D>B;rB@L2lV9YkBe;M%1@Q+-z6_mc!`UzW5x3D zmY?OG&&XQ_iAs3O5D|vA$onO$z3`To<^P{@PLR*2iLyLzac!rz@{3C%9%@$k+;W(h zm6c;SLquaKO-xNDq~E zxIB!4cBqGGrDMdb@la^TZijY20onoSq8;?mO*?eRdVNKnp&hsk(~hv?GStr(MKrYI zLb=b-4%&)lPXg`G24kp*jsD>T%N!w%OUTZQ9`!se*QRI|W4y?SLDGcECPp2kTMVfg6Q(Jc`GJ zqvhHk(v+o?c4!96DD9}kP1k)+8ywoPy4+(z+KHx%K|8AGVx=92*Tw2=WJkXzBc^Cg z_%UHsp)<4t7985)?F7_eXa_FCw1Z9ILLs!{G1SICU~#hJ3xzS@-ScSK*DcxOB^e{~ z7}@jPyyNSjJ|}!A#>+c;3vXyB_fHlX$vd8wyqD#FP0=4M@6C?a`4T96f>p{p?4Tu= zhIfn;zlC>PB*O5HLE^)&@_&ZZEgvzm{xZL~SZvD@Q3MeJXx=&U`3H0kztCqJ6C}^g zCU8$&@eL>crDq#UFNk0h|D>lCmq-gGP?ti40Lsw@WF9eXK;a{x4Nfr+ZHUM=JGeKu z0@^T9oG`Qjmle^5u#HICP)-q9>5ZMaXq8>MGV4IyS*QO0l zkt%3|w^LBW&<40+XanqnHn1M04Y<*!4U^^CAJUYils0Gv%P4KA#7)%}aA1Lxc~mD#FhUyzGo>Dv$CdK0}%o!|DFXphiB*?U%^ZJIflMxfq!<6a*?Yf z$IV4xC$4y1+F#-#?Z-rL5&bJG_~Uu9p?_rsr##vJB<3l?i_S+lV3tDbE(8l*L_YK9OhE~6FamMO&5c?RMExCTn?{`)!E37j`+k*RiQJ?1r{9U z;_U>~VVDap!_0+E;X)zI#redJlWjh+V?Xcse}2z`70dN`9rxen%odgKmK#NQ|2F3) z$?=D7W;&PYEs_=vul{dyU=n|uGY_(4j->e8oKG-Sw^?{^0|ovz2h#PoIVe}|Z*yE# zNAb5gl~;|w&8fa#bRa*iLPPZ3^S3!pcGQ2HgZ8`Lak*oEtEeRQ{}SPi{cV!t58cl6 z4yJcXS~#Nm*ux}Ze-~uQd`S`ey-w_*Kgx^1o`&eVC-zQu)UikVD~bIQQAzCY6XA{hGRcvz$71>b z(+4Fj994bnVG^-l4q38PQpEldFqg=VzyQ`KDc;*&W@)0HdgjVHMBlgwT z8;(5<(RWYmo$RP%kM_G_AGAJ*x2(^3PJKvJ68lF)m~-l7LCdNUV_A>N|9x>-pI3^q zqI2phSH5#jmGAL#h77elwuzI9LQ|uhLY@EbrhQc2udQ|RlA97(iuK1)2|I#71pA@g)j|t(S=QOK_ zT)64U{wE!B9~bAOGoFA50hIe=LS!ECAs2;@;E?MS^Bi&`vdwwZn_IylceOZS4!O9j z=#U$>5qZchr--cdNDjGAiWg>P4e;xQaXb9+uu{DT)ysFwNm|%mhV`Tlk`$dRiFQ`e zDZr;nQhcp^bxGlAfTv4h%(*^Vgo#l82(9*^i{=Q8bq7c2b&w@1B*hVW9~Nl+dFBX>%kU98?6^#%wW6?((9!<#?=w=y9H(hFnzI&;)7sdq(r2Z- zX{;Qlzd&R4&laJ;aT?NfoMvO)$7wk24r`JjqW;~dW8PQHOU5w*&6t` z``_Ebah?@$YpnP02igfgYAE?bMYa)HD1Rq_GO6-^iR3*h|7*(i(faoTSiW4}K@haw zO|Yyl$gkFmN>R5mOr#XZm5W3J@3kQbF3F!`EHJde2h@Y zqHcc&$J#8GWHovTA_NfTSh1P0g*9Y{piVhfOh!zxzBWLElu^YLE5|}p>>TA-bdnq^ z#(Z3RlicIxSg19wxDS4eCZ;go*^LhC0~?imTpJ#G$dqy{xarCMCvmJT;+%BG%Mc-e z;uf-5Pil(Ix|t-JSqaCA%Zw|uzxs>ZnjgDHuKfXPSd8RY@tN_5a_h-JFRF)Hj+Lab ziy1ZVsdZ{G565z>G274`Z?4Odn)ZiY6ekSF!liPogl2;?6AF)$%Ck%(Sz%^k;qmZ_ zD}A2J6I&5ksmT{{0?M6;)`;PDB3mrnlPO=Ao|2hxD0dvbNZ>B{{=4@i+FQj7ol(uf zu`p_l+YZOld(bxda#l&paV$1FdX9yOP@ZF{edydAD_ICpXK6rIk}$|K(UQ~oE%I1< z{2585+aXJylQc8QU-%U^_4cy(_(M=+CHYGrT^tML#8OwWWM;f@ES>*wz;LWc50zuN zJaloaw9K@^9`G2T{4(&Z zz{MM7o@wr!Ix-pfReqCtivy*vOG(4ISWV=HoRyhX*dLx|W@Z)+(8hyvY2!0X-=IhA zo=kt?f6@2_0k{A~R;IrM(#5&h_{_qAFqz@c$S@5+GsMT6yT$6bF2 zPD}Q=lD#L;c#qVE9GyTqg58`;b!eSGgnHbZi*0uJip{y4B2{oMZ-=3X;anI-hI7F_ zb~M(boC`M!=i*1ZUzKZrNK=+l&ZQYFqnxV}H(mERZE!djKHBXX8-{n$Ry5rV-c?06 zKhBYMc-^cHM|QURWMJ@#b$+MY_3Vn*_}tAkv)=&Uv@wJtY5KoD=JX>$B}atC!gOl$>*i zsHErL77_8cCk@1>L2+1Hc8anhzWJ6b-{G5PT{-dxb?=H|59;8h z{a8*(B>b~;^lwkzksLQ=gq^tJsm|{g8t4BG$_Rfv+)ybaobqJyFy1$cWmpEZ4 zBQ7g?EEl#B`B<);BC^sWc`Wz7cwzi>JvhTqEl=v;fPASt{Ep&pPcXUh;Os-lk~byA zgR`%}8hVp5L4gNnkS!5O5B)X_utgEJknUSE-C9-QGa{NOC?xD53@qOc#F-7j0L zTyK>{w7q$Vwhh-+{q*9;Qr-|c))BeWXJ=+Bp#!sX5jt&nR_P~F-ZWeuqJ4{o>q9gs z@DL5sMd;XY_d_%^z#l?t#!!_H(crFp^Sz|rhiICweTVVrCUmOP0HYo^p<|mJGGr4v zr$`lq&f8fiVhA1FFoX{F!AMw-5<1){gzhN$U~cILaxLHO&y=N<&}jzCD50ywP1k)+ z8yrGc{gh9fs=QGE8;Y z6fPh_bqXc&`XL-A+q_<^?r&1M7@iZ1;5ovc_zdk;k!>V4g|Z)r;4`#r;VKQ}zl+ac zCG)(a>=foRdqpLD=5rAdd?r`w?m<5DnJ6pbGy7cme*tmCv|5jDpXohiRohh*{&I@R{%7p}q)&0(=J2#b@ZDo6qQw_4gHrCBy;I#Y} zi=@$T7`Q9H`5~#7!)U(t7sjBQ!>CS!ihA4}hHZBCf1ATNMXKO1-VQ<$!(rft;V`fd z4#Rqs!{A1n!+a;#{*b0Dr5r{xSVlQaC2qRzbJ|c9hoPNlx)>a$iY|VW9Om%4Se=dR z=m-u|Rp<VK@vfE8;L=8<8BQoFcN) zBjGSUiFSDogP~fU!@vRgofG&S#WNX9Zg7|&`m^L`LEtb491a5oI1HqV!=PN4!*B)) zhtc^62MmXa^iVmB%fl!*jCz<>8sm5<9Og%d!$1KJ1L@*0^w7;=bjW&rMV{d>xD0cc zu;Vh+{h~Nr4ihV742PlJXf`--7;S7;X`GZd-60(2Cx^p80S*J{;xKHio5R3qe+X$b z90u;n51dHq~;<}j+$prRf(hhdwY{om#=PLV1&jJJbO#Bdn6VK@xzgTt^M z<}d-d_J=fODdjMl!7|EWDsj_wpVNk_I1KGX)5YL0Rdlg(n8WL0bvCl2BREV| zp)(u?790-a?F7_eI1Dbs9EMHdqT%5%PWJzn!(jEQgu}#(+rnXzMO4aR5=B`Nhe>kf z|BW0bP0Y&bk`569D9>S_i{voy(q=5mVc?&gqZ}qha@-sScH)Zf@BEiI%!A`AuJ90rpc93~gCBtcSen4cXE0|ht? zq>IC#T$saf1`3DK`3MILhl%u1IgHE0C^(FIm{wXt%o-1c!yI%t3>4rnkS-2G58WI_ zhpg9E#TNH=OVe+Jm;V`rt%?1Y!qm9ifttsVAV}--~;&2!!z+oU= z9EOc`a~L=+zkwxbG#m!*`a?*)97glCzc2>f97c5-RMg|S_i{voy(q=5mVc?&gqa3E5xLQXu?}g2P~PgToX; zmei6I9OhSt!$1KJ1L@*0C>Q21oPok&bUwlX!(k#lR1V|vFbWQ%9;THZEoO~}!eM@M zI1CivFpw?|Ll4~?Mu)7|SL7KEgUc|72|F%By|E|`m%}ubGKRy@ZZsPlIE*$ntF)Pv zH;okz^Si@gpa6$~ba5Cq*3DtywEX6uq|tB~xa$ug^>P@^*Z#s7baNQhX;4v*o5Qfp z&i-$67^g@T9LC#0C}KDa+%Oyl_Q7FTk8&8?Xmgk*axFjP$dsj&!)OM}D2J)UP1k)+ z8>-?kv=dDigTqwO#mZq0uZz{$$c~QSFja-la2Qx{IE=RwP>10#xD0a`Hie6Zhr>A8 z|62}&)vFQ?(_B=-VOoi(l*6541`2Q(NEe4exiE*}3=|Hd^AQdh4io92au}C~ zQE(XbFs-z`m^B^>hdJbM7%0GDAYB}W9=bV<4q30S$TJ)UmthVQc3g(~iJ~}M4%0!( z7!E_b(QI(wFxuFx(vzjUX{>M<`MnYQZ+f8shka2UAj439rwvtc7}|-Zi@{;4=wjtChu6jGY-C4AaG0t>XE+QjI2^{? z38=$x7+i)q44cA5!^2^m?Efu?!Rl2BhdD)5!eKg!sFcH;Cd!I9%;~QDzmdaq7PGRt zoCy&ED9>S_i{voy(q=5mVc?&gqa5Z8$#HWS*oiCd+3hcJn57ddQ21 zoPok&bUwlX!(k#lR1V|vFbWQ%9;TI^EoO~}!eM;yaEbf@p!^Q0D8OMLT^xoUx;cyv zS+B3iGaLq&VGa{^T!wmgQ5-IZ=_zFlhoRkQHaKt?ZERNQIa1y-c} z>EbYKteeBYY5DC~Nu%K~a94gtQc^F6(R}SMj6pYtQJn@A^|(0<+wAQBHivPFRKa1q z9fTr=!@v#0VPGE|hV>|i!HqVDIZLkPr#P9ilyVr&U>W5wmAL7;&uK$d9ENtH>0)r0 zD!N!X%;9yhIvd&15gewf&>0Q`3l4|zb^_`!90r$R4#TE!(eQ8>C;NZPVX%66ILxu~ zx4`W zE0_^1I!Z2bk8PfiP<)hp(?wBZfi2>A-7Kc~Xvt!d5iD#Xn!-X!Qv8#S7EwA#Dw9?W zh6n+a`*M3^9`WXl!bh-qJHcfY~KCF3A1_QvZBp9Y$I~>E~kjB^hh@E zbH$7Dn>WTm`OO;+$giow?fUd8>zMrNhLm@lZDJAUxC`5rzVrH>7Lxribp$TZgRISLB(^ z8<*kDJM6d&^&z6LH}9L}Lyh|FFc~qC-wZQc?lT)UZAG)1W5d=4W|fYR@}_~ZVaGTd zHWb*fAzd3b8|dD!;i&v*s-)3u*l<^VfKgKKhOPP9M;LeR4O?{@NYvxru-Rs3v$HpB zr$`kWwzpGI#BA7b!)(~Fj}4pk=!T6OWy9vL`3;q8`4LN|ETtQ^X0VKI*p;~Hy3c8Y zvtgJ2H9y*kri-y*SJB0~VIN)>tFw_E9r3d~RfW!M*s$Pi*xpV+9cIJEWq8A8Q@Bvb zhVA^CpOYQ_S)TCk@&sg`93!8h87DGRr2Vf@_Dy^a=TnjH&*99Ly|kg^uM*itr2Y9E zd=5wch~1La$^AJTELxu5<#G1xk)o14`vMV_?%C&yveG^KLQ%>RFcu;NP=3#bE^^O? zP4AvPT5{ZbHcG`6Z#*abOu)Nm)4<=hXOEN0q!r^KLICCVY-Aqso{hpsuxC5PJbQLT zw%IJv(e8a?dWOh^+KT_Uwzqi}HIm#zFZ#8xF`%k;3mN_H2x5 z?AaGXmW+}Vdv>g|XG4KK8`8CBqg;5;=3tgRTZc9rFne~Shq`CGJd9$`Ru9uki^Qz) zQ1VIO-o>(Mvo(Wd zbkDBDP1k)+8>-r~X(yU4#-3e87wevVcwMZ{Ms{?>o?TVw%$^Mk&Ytb<1k_>nY+Q!- zY&L}pg=f!pvj69MHWn?{o*iqwE_?fz{64c{Q6_d>&scv5 zxheh?56NOF9U{CIF;(w-*rHK7Ud&12*BD?+nk@TJ7GO{4Nv zwa>_X`h6-+c3k1JlH1f*TMi7?Y%5_tzY0ZK8E5@_u~qYE`OLBW7BRdE6t2gemi!j6 z#^Ec*VXCM!4kdCWKQ74hDyCOUDsdA*-hL%!Vx5$Gh+L;yA< z0y7{=u9XxKNHP&Xu0#OB_1hpQB1X;>BNBlwA}WahZPTbkpsU=cBf-gzE9@q@(k>kf z*INlUIb-2p3&LXoegz7<>%HEwFjG`I7G}$pKQxEwjZANnR3dS+h@!UDjs;kfNX&&O znI$PAk!&J?T!{pPYb>BhRAYg*Y1A_oob2ev0=%kZEZib09SgV0l|M9}>AxhE2;3&3 z=(uXf0&GYGZigtDCn+M3Vj_TCi2#IaETBkKV}Z75)H4>G>}baV{Bn&2_k6fRR2qZ3 zmd&1Y_s&TMWk&SmDX>S z`*cNgvf~P0kzBJUTx})HaMr_{Zws%7@G4Na4R>Ns2w3aGZC@cOY5Q6J&?>o-RzEDF zs9m+KMmcHqBM>DkB}J< z%hhh3`**U>9~G63`!#YUKZU~daY-cxPlzZwi81IWn+SWpzg(c_2Z%I14;vDLCm~8! zONtm|niwEgVgPX{XRzJ#C?ZA%i4p1f!6GW@dD^B?iNU#YpZ2_y9alI+a;x79;a8w= zsNU=418YU4F<2*8^201lpOI8z@T`cU_SMdP*pL{khbVbUQp6z3!~nSx0|?jLM-hoZ z^?ZP~Y1A|Ko$P4mKKydcefJ*loTxMg&&!p3Nj=kzl1dCVi71l4L=kpe6(@oXiNT8y zB^x9~46;oOkSj5OaK!*cqKW}+)2Jr~PIk00fM1owV6&(+23zDxzWSQ!R!JoWuZSo* zx!M@OhQweSM9E8%A_h4o2FR5dK)7OnB2mSFwrSK811CG$7{ISeV(_Y{GzPE9m3*r^ z(>ElQ80-*HbV{``fDMVkn-C@2B}EK!O$?ALF@SKz07asT0d3Q$Ck9S-v@w8Rt{Aw_ zi#tUnF_81(+j1pet;=*5(|0A6NbD9-bSfiJ)p-$?BohCDD0xd#M52a?1ac)35U%qg ziby1?KQGcYjY=e(^P-a--FXpSRdQZ@PgEL*J#r=Asmk<2rXNWvarjt7(P@lBRp&)m zk~n+- zbh(l*v0<7isl*^lL{XP&V*ncxgKUVBG)WPIdL{N&kUUG=$;wCE7#fC-S%3d(ze%;EBR6gNu}-eL=<(aw(Te_Z7+Z* zsVynmUf;AGxzctBSKCn}sWw^F4m6VaEwYqj0nQ^IJjRzxORVc2WBKHlD?^sQg?`7R4_rQC}vZl#3q=Z}k zZJejAinZF#?DSx)l`;$IVy4f|XnlW{)pogM#ae-xKin8=&7Ae!!dPqBOr+=X`bA!M zVLF=W>CAs)2JTt^!Z)`jTHO+_eMM}}faUwI|3-c=@^fDQnb3Q6sG932L#+At!NVG~u=es! z56-p@EkRE3@@eF2+;48pv~GB`=AuOFlhtU~WwVe!Y66HVy(iP(02n@T>DC* zHTxd4^qds<^U(IaPsLjIUOr-RqIJ(4m+)6|dfwG|`&y3T(bO=k;x| z){>W?eU$0Pyr+0J?rbd)OSGO|f?5_yD*eT>Ura~Nz67NANbRZCtf%1B4U50I7320f z&ODuy=~l~UCgq(hBiv_Q<4d=;uLbg3iGtIu7dKDJOB5tiNYG2`psQmI;GOlJ1gdL| zqHg)qiY8Onm{#gp)2(|&+d^uvta{c`qD^8GXgSelu?e)5=s~dp^d?cZK_3&%Gt zuRj4)-&#rCMPd`^aq8+k1=PTLin`&{HL#whE`z#;)&}ajQ`gYiMBNYUqej--)b(S1 zjjRLI&0u{;S-()%MLav%I?DQkx(68R#uomTF5P;Xy2e(5AAX)jn@y}N>Y7m3#Hvr- z)ht(N9ZlV0)>mk?q3%1@ceK@xx(`_HXzNt!Cemh8s~dHDS+1!ykh;#a*~}VFT@u^Z zO#ZqLzAR?B=GHCLUBGh9WyPnC^|i2mqHZ?pYhg7GKzE2XTUt%!4*}DyOQ>sUHK%Sj zb;nq}h$ha9Uvsi`j5RNSxl%M2=vW)Q1k~EPjk-FMfsVHp5&gUr=mcvi(U|E#9jr%) znr@6=Gs1tWwU+498{*eA3UsnwBwBet?(Am0LA3u>ptG!Z0zT=bqLuM$GJI!S?+41H z4UgUdU2j3q-M9j}-qwfIolIR{LGb#ihj3?K>l31(vw`|q`-q+^hA-z@KN3xz3f=iu zVvyyC##%Lqx|KjT&Z#_Y=x}e)ICgJmK*d%d+1hJ zgQ&ak7NAG13y8)~0a|BGB^u0fPg_?JZIU}j_@A++v4*bq;LaDV+le-@zE=dn>+>Fk zZo5HqUIlu?T14H!Z9qG%2Z*kgzFp*h+ge35lI7mDo+Ju%z@6_|8;Ay83AD$0iReY~ zbAlLCi*oKd-okYtg;m$AQ?^xl>&m56oS^J6Rh%PVigY_rTv@3Au&sIVV?i|K( z_N$di)cQW?{;+BhEqxy7Ppf_mdaUy*jHRHjMGSiEPWD)=An2Aq4qdFT6?JQ=OA>@$ zIbcv5+WeM&ruY;+OO)n2iMn{sl?>nMM7yZV@^vNZz7W3T_|74k#hFvX*I&`5_%((8 zI=<0FLm2D2zOnS|2hMDx2113ZO)?2V+Ao1)E(=)iMk-$-c}Im`;%U`_1!|$f&JIccQ?^6j=?j0 zj}i4@A9eCQMKnJFexBufnP@iA*}m6V-&JhiIlgyTUt{{xTM+7-Hy`DC`*!or+v!<< z-(KGN1@9ar2zSonor8S)h@PdNLww&7Wl1~__|EhFL^O?kG|cy#+Poh9e!ee07Gq-a z?Wk|8AlTf`ei-XZBAUY0<}zOsqV+p)=jFZ@v547=*TPE3cLJ^ab{lk83xbtB8x);H zv~Us7G+#%euZXVmbtM|`EOgU-J!!MoWw1HRH;6XRqsUpD!6 z6XjF4&G+9}%;|ht3uLYH{XpGsT+iMxsFBnsYn|_R>K@_h{g%&)Lk+KS^?utIj6*+M z!x6d5ml%i9^9p@=PY`Noz#883rLf#PSHR{TgZgm{e&oxguJ{e;KKA7kwd831#8;Q7 zgm-@8tIzrhWR7L{_WF)ueXAMy&jrD=^Vnmb`wEFZ;As8I*NW&=t`pz+PN9|V66*}# z0pFRlvX7(SpdeTYuzd%8-FRp24BYvfuMh9Mjdxo9K60mgo=UPRXTRSkpKZGcaT;no-5m6aypW>fHl*cGd^_LQT z#L-jgzn*BSjMlusRsNYoe=>s8{R@b`r|t&-BBJ$=qD43PA0^tt{o!W+<3x?=*)9I3 zi8^rX-s#^?bjRH&x5&ST=m4!O@$VzD*!HFV{X{#sM&9o~5RbWXH`mCA{DSER>I zwpIy31fOROtNgwMpe^i&NBxOJJ?ZsYe=VZti8lCK65UO&U-F+q6rk5z{2hsMY4cTo zPom-U`VIdeqT8t3=^sh-`sMKD9sf8*C!vqt_g_xbkZsuSzk_JUGTiyKe<9H_qHp|* ziJG$Q-}>(-`iVAw^FK$FF$d)WfgK4L6Ma?!B?LaCE_o}^!v>Alwg*0=E{2?8eISsC zxU`qHpKNUmq!G>Iin%F}l?bli@|m&QPqsD(Y9^wF?Q4Nv3e@MFFK!;YJzr2W-nsl~ z=-vwq=bept=lg+66Yu3|ckFgcnD@;@o1`4je4+=X9MCGFY=h*uFSQS&&G!SFY4f=! zQNy0V4&K>KJhKGtCF;9Q(GNst(#oE|k3{PXI!M&mpg)KbjTL_q{2Xnp)Fql_?rcR= zWRU!2vv}5>aoH2-o`kskz}9{c7)o6~v2wEYL0~F%GoAqYFmN?>UBn8|wbVVp7JU?$ zN!`=beH6Hvy3=U$3*4TJ z8TZKTU1aopDF|b!Xs)8W6ukuWRbU}eoykDo1Rfyzc`4AhffYn!rUU&LSWDD&W0y7i zV-5y35Uso)x?6EV0 zml4eoU8~r$gVTwoU4c7$2j>#Cz7MEx@OGl5&ja-j-p%%PUWK-w8+?%MyOZr3DhTcS zmh}w{t{{4rXjpI!Q9Q@Qh~PS+UDS;VK2OwrA!-;M+(MM|96TEn+)k8DKQ9dKAlk#W zj}5*}UurYfcE&y4(=x!#!*lj z^rhm?K8(v%!C0dC3Gnm!U@p;Yq8oyBQc>Sk9D_51jZ!ft8q=5Af?#Fde3Y9VY{ENl zr)M_@kL8_T@XmRHaOW)EIWO3jXc}Youi(jA?s`Q2u3&eTo6J$SKoH8EBctbJYeDdA z-Z_E3+#T%AJCj+%B0;#b0Y}}UU_YXxUcu;D5*$kO8^_>7!6KqYn_%;iUsu=bacRKuvNm`lbyu(-o)!dO-njx+o(|3>>c`fu z58g>s{04N-1@ESn0_l|u--h75w6gj(=r#(1l>mL&7+fj{tP;9S!3U_@S_-r!_!!Yq zjMCQNI-+IwLbolrfoK6o!S>*0q93OrF0Tc*61CrsJKqcLBl=)H&Gc(y<0li=?}&okEhgBfY?bCr0uKjxcYO`^N0I}mJ4H118<{3Y0$sJq-*7W;ef zB%%=#msYWV2G1b6l;!*}J&1mL0X7q3h7t8<8!}@qCE6*mZX25yQ$~~)LJb8m^N7k= zU;UWdi1OIJMllPCK4RpX#4ID4D*fInwlHQn(VuL4igzNfBb%+o|$I5&@t*+kTs zzO;_nLezmh-7e-`B8zP}E#?cN9XsIJ88P3bVZ7XZEqc03%x`JR@}TQ32oZdqR=UR= zB6|HKwEgUuxOC_m(#p`7LZThZP;OXEOQK~&!(&<#HD&E1Voo6X>2lmTF6Jzvj5$CP zV+N!v&jOkhGn%^Otw5^{is72|Sj>3p+H-b16*Gls-V)roE@o&s4RJrh$# zH0&s#*J7p-Eo=_-am;l@&mRkPAZ9vI3wcv9(Ta_oLG-1J?TJ>6*jYrs$osj8*3q$Z zh*s7BIyUwuq6F60E_N=_ffmr67CVpVVcP5xJD=zcd7U@WIy?3@qCpLS`o-QsR7O8X z$KFNMomM8sE+E?13U^)|yO8ME6M=4sT|_j7e%=wgnCLlqjy%y?5xbP=9bqaHt!HDG z5v|Ms+8+A=(c}c64`P>VIksqT>0#H}OJKB^V>43YLxqqy}%+V&Q48;G>+r^dZN zq;2mKw~45ojNggYpt#LMsf_N}xGhA3+4f80wi0cmXII8;BibbIeI{Br#%(9E~IE7=M7scO1~L_@9Whk4DEIB+@>b z82>Ag&Z8;uzZ2;^x+?w;BzlZ}^hbO$k;XbTA(cpDotuzOq_eSZLMD;U#-kFli8R(N5^{+&)@>5< zh|Xs1Cnn?*-6rqnWfmvYCi;T0?wU}SXf^x&oP+|R;#l0-KcNAUe1bsGkc37=HCXQa zgvLZ0IFBw$C?uN6wWl~M39rRAt_gTUzMB4BB6HX)2e*ZC{BazO{LkXRT zbZ(|6o=K$ro|o8_Nc;Wh#O_2oH`^ulAkw+nF|j9+&du(Ly@+&f4omDqq;s=4u^*An z&Fc~e5b4~!J#i3`&dmoC&n42ixh`=ik&c&F5{D7#czH8%1d-0o|0Iqg(z*F@;%Fir zFJB~%A=2^kP2yO+lXLSx;&>vRo4+ScAkw)RNV-_dac(9hT|%UDGb^c>NatpL(qtl? zn+=kt5b4}JI_U}`otwubO(oKPKQ5_+Nc;B8q^pQ@6bwu%(>vL>=Os-eYR8rR{G{uM zzUQ8EdD3*E-#I>KCe0wafFttmq*+8hT3MDfhv*7gS($Vbk&c%qlI9ZWc-fFNk4V>v ztx5BVbe(uJ={BOLxRdNlx`XHx?qk0v-9@DPSbFjTBJID1$qR|J|C%Q+BGUPOT=HTf zo$n_nFD3f;c+AE#la~=Sz)kI&Oh#FQVKSrc6+mQSOQCG%nYw}v6xs2J)LDT>^Ziq;OzeL;=Fdy@6WvN*ic;k-i_U6-b$cO}ww>8kYZM7l0rpWcIL8^_X| z^qxeMIOgZ4_aZuvV}3z;AEHi-=aTe(M7d<652gq4YBa-@$_?vuB4S` z(uWc~M$We>eHhV8?1ydXBZzX@+MVg6h~&@e#L9c=qls!Ux_i^d5bdLt{pn+ghBJZ( z(#I1Gqm|#&ClFo5CrV#mg=4zI4 z1<~8I(k5dn(WwO}*FK|!Xeh0mk#QB#Ika+CMj6rBw9+?Y8c|#h$_>f5j;M%M&d-=m zG=)|!%9uekiB>Mnm_>9ktz4clhv+z3Db2Wvs0-JnYcu8&ZR5H$Cu1H_Pp%>V%9u}d zTPxJQFyl6&&$$*nkZ}i5P0qhZGwveNwO~`m0wP@t-pN=+FPna>bC#`(7^b3M_U zjP)0p8;HK*3jJN?3qa~&Rry)lh;&vp z$l9*u7?);QuM;igtZI|BgQz{{L;I|qL~paTXJoxibQ9<1Sy{V?wicpq`)2JXDrn1b zmh~RdW?DHvYY)*^v~p3_heS0vA0}sgOw^gPsw8VK(Tki_*JXW1w1cy1PS)o{&u~7> z&-#*R3#}~3+E3Jlaao%6HIed(tId*qu{iJtt?7p9M zkVwbwXIZ}z>Dc`y>vtj@yFX_gA}V3z6SJ)>>~T$!P($r(KhXl7vKnOviT0DRG|!GD zx|L)1lIQ7$7tGdr8; zclvTmb}rF+u90_U=Mfcf>@LpEC(?cF@$A|}x{tk_U6)ArvG=nJh)OwjzsYVu)Peo( z%V|WU`&d>^V;({(tYfNoTfy&k9EswPNe(Tkerr8$FOfF=CmSO!+BJe)0$`_ z$IC4_ZHao2+bqsGp6D*loaH$u5`Dv&vpVM_BAq$wayk&{%y}W_6e68DFXx;_)QM4g zBc~%#0>}KWoK8fm8>4SO$T^cJkNxmjPFJFljQoFdx)Uv@l^=3?5M98P;b2ZrqTe`k z{>E46Y55oIzG4RX&VYQ~wB-3&y6U}BH&B&cXq#X06+$)Hbv)`LLl}I`Jn%oj1 zg%Po&QTy4JXjNS_G|s&NOAJ`)&O<1Qk7 zCNQqX0wR4TP+DUlkv(M}mg8J$n)eKmJ`-r2x1LC!3AD@GK%~zEPS1ORNS_IG&D%tz&jfnrZ6?w_>X)~L zNXN^0d0UCJk1ojDM%0Suqbu^Z6X|pBnR%}hjj=F#?#$akr04LJc{_=gaQ%EP?`@)w z$U|Pw+eM`D{3vfXk&d%3^4=rTcz&C=hv*pYD+lvFB+@73hw?rq(&x#6ntO@#jGk2U zGot=ndopW&PINCG-^;=0PGIpOb6;N~Ghnq~`BLIzH#tJVd19b7@U08~dM*&nIg7iFACvTr)_d zq z8|UW|>G*7!pGTzQ^SJzcEywYBa(-k{es?2%tUq~o(+egh&MpF{E+5$X6G znctX5dB}zNg+%(y>WciPM9NBL<~P?n$qR1IZ%L%jX8x7mib$VXJ(%B`NS|3fo!^#7 zpTE48e>{;sv)Yw^B9T6``XK)#A{{TE=XW5|x$=GfDMUJ6e#<|NXe~K=TCI*miCkM7 z)#^l~eRM*tGl_J}pH{0Yk@iv7THT5EabM|Os|QgQnd-Tuy;Em3(aT(uKdAE<(G#?? zug()h32ghuw^tk5(Gh-AoiDdum>H3(;4!(zfnaqF-sHecf$DwaLLc*4<9@4Xt#o`#RA8TIpGL z2a%rb`_b^~+XZtaAcM<8nQdD<0Q7YNf6?NYu()lpE?j9nY4-4ylNVF#r z{l2>H$3!zZAD*temuL>>!=}2Q5xv76d$sQ8L`QQzd|3BOqQRUGKh)h%G=lRXw%*r7 z6WNwQbqhGVdKz3+*>;Rrdk-T|WBoDY5K{Y0ea@bl{(B+_&EMfH9qdY4g}RPT2p z-GM^&4iPP4+pn!>&4dSw*ULsKo z`uSMBWTKlmlAo!UO0<$=a8tc>qEBdLTfI!8Z)jy_y=vt!*n``7L^?MNM^PXPydlJ3a7HuC{zZcPGoSVh< z`w%@RVVY=7t>2GGpQ%o(KY&P|sm`oFi0C4Yx?Ad>OO(ub-cf%j(e-@la8LbVMEdk+ zS^W`2`b>32{ZT}NI9?vDKbmM5N8Q@`V~Aeh%J*FTu|$ixW^JxNp6Cy@@74Mfh~Cyw zSN~!nUHRUte+iMUe0%E`6V2hM`>OtAqNBNHeP4eHk*<8d)W3pAS3ax3R3csZ;u@3? z9mUz0+Tbc8efpErpp57QKF6%pU|NpPS~;Po{K=2c${5mza@Pd|DgQL`-(!Xnx9d4b zIJ(ao-A847(MaZh*>f!A;IT!NZ;hKoIsg32DPO!WMA>ch)s#KYzm_t!&kd9#E|^Vu z{P{Oit{8VKt|1|yW(SH-=&HY}b+&e+_SD&qN?U=Wj-*)7Ol-+x4 z{s|YUJj(P>W%<`!to^pa$Zn%QrJY5izoG0?^b2LQ_w_nQ`~Sytwf;wpyn!+{wq5%} zVh`>1`5{Z+PC`)Uv^0!-6-tjP`&st^X-G!!q zKN{bi`D4s@=ygs%VvYZRviJP(V?f!>@hZ+xB3|4;0NcKNI&W_)hxsd#g*f$XQV3Uct{Oa& zc$}GMw%z7EbbL)5GM@T9!xgU`Sw#GS8LxecCKHbzeI@1B=UhYi!@yaTUC+Li(zaJP z<_=<=PXo#xc~kr8l$%s8ouabj6_xYfP+4=jSMM$7v!1%-ZrXkClEswvx?#7waLoP8 zx7Q&%|ML;B>$7ZsBmK1PJax&V#{LtOQ^#q!&?xUbJ~-fM>aXjwfzn<#?0$IrV%1L^ zqVi(XUv@u)>o@C-y)N7F|6$;ZwEM`Qt(1pr?^V;@CyeZ4`te1x9?lx_8ts;i*-820 z1YLhCYgZ5B=XXOi9`?Sld&nM^zkR&s+xy0>{um$5`qXp#J`bMv_Tk`Dz*jM0>)2^&*V z;D7f{r2SLOzFTPGoqMU4UpPu00J`c8_Q1FpPR|Z7p-a^MK(in8y0kCLoibL};fxW3i0d2NZ2TzV{pU}hd}-_yO56U+W?U^8TE_gx zjePe~#S;eJAo-5}!#d0rJfLj*Eh@9Fh4fj=4d1-alv`nVg&hZbpRoP3@reWf#qwP* zQ2&n^v5@%c-b+L}_3l1%h2Q~YZ`=dv8wU9nb<1PHk>`%K4UwY8UoRJvc zPWi#FJi+p3&x74KZ>0JWmi4`>9g$e_W12( z#)ZQle&v0K#~UK;4k*iRkA4|YR$yc^%F6e3J3b$c|C9A6n0;7zuhX8=dlTgQLY?@s$VFX}4#0cCG3Q5ioU(r0bz zeKuteGyWR)#(v|J>s~y7<@$G5+2JgeXHxpCx`UM$U479I+UeJCn8*z4HnSes>&=H| z-6=Ht^+g8T`|~@a&u96;rhm2%ok;vjpJK}E`dm)Au5StD{yx`GzSVa+Wv-VQ)?_s{pAFnsOX@}Xzjvb}vB%Kcf%G%$c zbmkCArPne(~bzLy7SJR<#$ELWM|wqLO(zVnSdao`&In>|X`t?fgf zA^xuS^OTd%-%M%yX^(q*J^yv6uEX8U{%iAy{Qer}E~dW?Xa`yPL+i9N<>~lcn=P|#0Lyfck9clmAewSVtM|;)v)2;y-ysz}aTuOVK z9CK-b$Dea9YD#SL)3o8o5RWqb;=fRz2fZ;yWjljyUTeq0F8|VCjpLLN%GZ00X-j+e zjcrFc%jk!V)A2N?m)3vT*fXfN?Nt_6o8Rs>=i!FN&cq=a=S60oA1+U|>uqp>j@KSz z&Za+4nSI#iclP+|b!i{!Bl*|(F#j4TdT0F|)?tKTJokch?>`q1myH=uY1=P9ekW6J zk6U}Z+T+vqzkGjQ$#T{8r(M4Ke!PnI?0&p#>(enj?zvtQ3+eRjOo z^}U_=x;_gi_xHJ%(%w({^<746?;oqoe7ED=+^o0uzGCk;N4j6x_1OJq?^AZW?D_Ze zNFD#Sj9e$9T@Oz^_aU~=yDs{y!Djtl*Y^?Xuj}(T<^DeFC@YK4>`QeWz0;gmY`?D= zt@Gky^PH)xkvADRoP2sf*-rEP><06ktbdBG&x6f#vevZ}|9?N1TyN^lO4a%vF|r^{ zaSJ2c8`;gs|Jj$UT`H*cl=vA==JeP-O{oAGwKkvADR*vRWm`&Jvd$H)yvUTEYJBc~V{?ep>I zo^KB*J9LctUC*>UcDW#rVwinlIRdA4caT}F;E(r08_BTsl- z?=LfWl)(qheC=a!VV1F8(Cobw}b!KT-01@%GJ2U${+@*0zl#kyZ`R94PZ+3QPXLo1YlRIk1 zGQ^SFu$-Gz{wgXzACzyA#QCeZ9}@FMR_7lve~EcW%xmuZr2ceHe6K66*NVNy?X*aL z^-6;IVOJCWy^a=1?s*uVTG$zQihbX@UYCF$^`7`^+Bc>0ZI-C+)@nf8230JjFdr?>G3jP+BB$zmm{-Hn5}Ze0ZAYQcHmwG+hTzp>DZ{j>m`2E+{PC|aMZTUBGTBJwKN1Ugmf1h;$@*Ca#GCb42uet&9 z%LD7JBttcs6c^g<-kk947sJGXLgM z=C6*$;d!TLDR{cx-(+;3^MZ?=qTR*4OzQibsw_Rf&*9JX?{h>y6!jP9TdwC$roW>b z)r9=q&v8%B@`v(&$pX^-Re|) zzO;-#&HCoA{R+r^;mOY#+CY92-*^L_qq}#4rzj7frhW&%w?O}JG=K7Q<#*tj`h0jW z``nZBVH`)NyN-bT%=6(1zz1KQ49~HzM#FPUOa6Va7U}w{^Wk~2WehwE(s&ectj9ac z;B)u&&gC~(!{)HJ#JV*54-=1rc5<2tm&9z9v z4zbQS9ER;%v9ApBrLU^+6zw;G&SA~-th^u>c8Pf^{q;a0m-HgexcfW3b8lhCh#o~D zpY;59rcD`;kLXbzo}!*F_N(qve)G2jfW3O)`YWY7K5G$+c|+7s%pc3bgFtU!cr%y$ z-0Lmk$XQw^ndhJAhs@7E(~j%r`6jIo`?Uo-(m&s9&*TrsjqZ&3`6hop9CzLZ9^Jh! zJk9erEGPB(8;<9!#sd)tM86YpK=@mN!--p0A`n7f64*q~f(z&-|KoXAs^v8Y1`swSn$*^2g&wX6F)=SuHrqAj6<&2%K{gTHqcRO9{m3jI% zz<;4};qVlGkZ2uzAi5WPo;uF;gU`)4msvieawH#YpX|(QW0@VE#D84prstp3esNzn zOo4j4>u0|ni#)7{s~!J-`Rmg3gXm}Z{I-BRwLg>KbF-giw>>iJr`X@K>Yvo}VA}mH z{dq7m`*0jRKKnBEe^%`h^K|`6p6>e|tzTu|u0tME|HEYM_Db|tOjs5>q@OkR_y*PYs&hMG!Q}Ge=5%D)|ds5rsK3>oc_j-u>`Sf?) zA7(v%R$=ww{(sc-;M!1sVVAH6$5(dN#Z9wh$KxwM?e+;s!hV)ryHc;?(r%~p*Kz6D zhyC~Q+lS*r^dm7&vujt@*KyddUE>U2pWyh-`uNIPzkd97yaD4pBJl&4^@(UF(a+6! z)jf`8rjPwFeSI;%rCq+M=N>mRF4r|~^0?=2ch@xQZI;&`8Qb;0>rdDE zx%Nx$zl{BndHQkS&(OH(@C-Zj| zS&#RpJZ$f8$-nQoop0ZQ&&@dFrQkhKes~Idvu63cfT&wPGFd;UE;%0m4k z68ZPZJ$xTf9X>bx<(kgbZeDNq^bJ5iG_Ex~#k%Amy@&C_!PnvQ)bXgJTe+F#(>q7< z$$tCyXLfkf{$f9qwtrIl#eH5L2K9FLZ}#gk#lw2I+VSs~zYfkH-2EW>nK-XV?N9e} zi|n>XX8jcVdsh9EdjFDke@lP=l9_!tjvk+V8T&u0c4dA4@@V}k`*s~-{Ws_0M)vLT z^t>L&zw3O!=P`_HS)a$U7Ka|c9rGbBMRE067fjPd)Q9A-QDNA%=8}~r=IJl zU#{36rfs*W=ROZDO|!mc`Z$oA>j>BM>8BIts%hIJ;<~Bt9?!E{pUnLKa2)sC|1TWO zto^cT_v7-HYkRtmKklE5+duR4d!YY_{cC94X<%&k?Cc}Yv3$6Fk9tmvcDUNh;~d(P z^*HCL9oL}#5sCbJq`f8K7jqok1-UuiT+_SS&+G4=-l0C6?<9I}HGKA)mp>D5ov-}T%zJ8>|M)z6dhm$7}q|H96!#)s7VowV&tf4`HNo!G9~ zwbR^Rq-|gN{|AEoC9`(Us{c&8JYCOkh5jCq$bY}UT)(C_&dhP|KE56`A8d#8^AYQz zjO{V?-N)0T+2J~#_;|=_eK7u*_GC4mf7&m*p`FG0LCgm?;d^4dCEp$H^L+}W$9iQa z-kkC<-duPjJJ~riq-%QY=Nz*0&m6H+*p+?1WzU}f6+7Jf+2gazuJQO5k;s3SCH1-} zy>VcU>%5?Eu8({@%Fnf*@_6%tNBNm{Jer=T>D}8Yef@f1w}>O5aV>!{eRkqRTb7R} z>yqv+c035d_?2_^yz8Mo=oi=h7T+(Tf3m(`^wclI!7mYs{C9)Qer~qsM39^P_@gw_ z3xAq=%iZ)`%WF3|1=`Ued_Q&0C9@>+!zse_J`(@X@)cb+7{g(cIz;(Ut z-p{gYU)I;#*q*NAg~ti($61dPp0=Zxj`Jb^{V{Xh@9rnjo@N|yABSSSo^d{=zWexl zG&@|!A0I#Nb~rMuk6C^ZNN2{sM=SrI_k*kbuKk18*WGRr|0+Oz+~Zf~aWA|2mD4OY zG!E^_eq5@<^7kZ8raj(s&K^(q)&Fbuh;hn)XE616H^+zj_{^$aDD;nr#LUWT0qM-~ znAP&Ks@DO^4~=^pp6=r)AgM2Wo_ahDbhA6Ne8xOtK4M&^ZBJ@D+}jK7aIc4`U-rjk z6sw2l<5HCGZkN82e_yy*Pd)rTl6$=}_RFK^6AkU)Zilch`~F$zp?_Am*pqX1Y|fG$ zkFWfFE`AW}kesvUOAr0={XcBaA0FD1Q~m!*K0Mx}Ki~ad^^eV&*1RvqSJ*849h*HVf7B!DO>xu9uK%9s^Zj9ZVJN>pYS=ea7=g>h$jOhB)v04B~cBSWMVK1%^#Jx~fzNh~jv)_|*$nT)O z|GZtlcxcz3E_S_P?BlUrn;uj1z0gi9zi=Jk zx}N3dt+)=z`gyCT^S#(_EK2iSPsDxme8+trd))e^VZ9WQn6dpL4x9CGUk_)u9*<^6 z`sKgyNcAxFUxM`JxnFRa`eJ>V_PUa<3tPJ7lU+YN(Z}M)H4sikdX?FJQp8g)0_`R)3Fdqqf%<J6msqonqY~{?9oy zZZLfA`hN!5smBPGpC|k1@ld|7!`;4sq!}PjeNHn6J~!j~@=WsCkWM}c9_F+65%UrI zdi1Y*y;9f5eOzOG-1UT?eEJ^*JF?&JPOyADX|MB8ZhCfQ-=1q8+LK*B=ZyY8=MPW! z|G&DlkLWMiZx?G`&-w}4@%YMj{ryPyc$a;Dcp9&Brk@Fay7#xt)${Cuqc@qJ&~ z@iZXG7v!n^P#Qir=Lwu|-2Er!8IgbX`$ts|$4lDrJ|GF_t?b&B`dlpSxS#&HSbFyD zg?RJ$?Zf`<-mclTE2rMS&H4D_>Adj7KYadr)c4Atw3qvPk5Bqf#{CE9C-?Xx=B1pA zLw+94E4U7G-PfA)D9)Ezxo6JWdhqev5e(~rh{RDY=eT0LyY7SezNneo`XMYseX)+f z^#j*;-=}uVL?7pSQ{R1mnwdV%$LZ^f^P05lZ|b@4M>8(hbwA4M?QVCU4C`%{JIKx7 zS+)1y)*F{*{mgpJaI2SV`t;L@bDqrF%l*9P->(0ErM%^7wv!nDB3_&AQQEED{(l|+ z|CRRrziwxC`>$)oWuAULj2E#EvW~|0vjUP5;dAzVKk&rym7R0uy(}MY z@1x!$A91m3obf(cPT6zLLwj8Pl=Jp@>Ywji{F8I-blXF}!C;Rc{GiHY;{RZPrdj3i67x(tx4)u1| z&wf3Qc~}ouJO2IhFQ(}S(a-Yv{RHyV{`>_#H^*Ui+vCytdsh9E`g}I+{+9mvY-aZ1 zIC^~cW$gc~+GU>4dOH6;TEEJ^T~hv>j2qdv$5TJy_;+3R@$(~$`&mCf%32(H{C3z` zd-DGmEbRU8dO*aZ1JO9|VLS2p!hOEWO#k6=>bZXU<%)Gk+IE|I?(<6Oe@cBfEB`UVo+CPU)||u>Ymkf3n|Rp3d9YZ(PS8pSN**WPRSw zTEBVxc1(nE6p@(QW!`p=Gv<8b9$!SJAxfust z)2E*K5)9!ES&x@JahvVq+*_W~ZvuaoN&m}VMSJ}5KtLGAF+m(HL zJYC=5_;;NT`1%Iz%li5zYjNoD+hHq!=MvAjtZ&@sJ!~gFU%1bAndv_~PCeI8zg)47 zNZW2x&wUmt|m>8Gm-^IJq>+V+UJZtAb*7E;c73Bb7)W2 z~G!e5%#*CFJvcf6=C)8WV~c-U-=~Tm#{Od<2m*IByBs>-=AQ6Wah`L+L!fxKuPE~ z5s9~4-aBz`XW>V49Ju#4F|TKwkE!q8&mPSV*M7$PiMt(-md`(5pYq^W_jxA0-$4zH zs|o3|-~Rp{j-QZ6vQyaC^jO;*vh&Rxu~XQUeZOVTp8pj)#Jnf^+2gaTFZ7d$#NX4L zmxX=qzl&|ghasSE&Sw)m%Fnf*@;EWeqx?)e9!<~F^zQAHzWz$EJ2Y-1JjMKBz8AO! zK2JT5C%M&EtOs245#JY`THifBqaC7rp(pG@`?E9eA7b`;GVfog+OEH%Jf4Sf0RR8~X^2zRa&RpL$&bi0g z?Dpf-`-rsT-lOg#a=t%%dOnWrp5DA5;&ArohbMONIP>VgOZCKGPyF@p?^5Bq?|*F^ z{`>aey2$mMn4fc_e{g=t%KxcnZC&*E?ZEX>&fDSXx~KxI(;^ZzmwQF``4{^OUvIhZ zZ^ZeNtG<{YO+EL0P1@zA*7K}9*LjcI>t1fg_GYeMJxzb5w!03bGxyO=($q8k^LmEq z(@)ns&3seaGt4dj?E2yVw!Z0a&-zdLdTICfe}0_(-)^VO$Ls%g{nPI+8QYz{o@< za$d6PU$SeHhjt~o*d@N#TllHzu@sQ+$+6#!`N~84{;&4aw9gyF_!a)oem~8b{qqyM z?#i$aFYNw3Z%^9MvpD#~U!M63!|;_ z{tqw@MkGFJ{eOY<=6+QwjPDyis=gi4oBD;))ED!0+VeDDpOkjX=fB<#Pwe-sAEme7 ze$;-L)B3Lc*fp-D)nD=Zjl}y$>^%_Z&)HuWdHTIZ;(LGoc6krPjCbze_u~(ChQ>95 zr`V^7_t659n#1R*_i3%*b93CknMpqHq?6A8w|vApI&FJW+u`2sXoq_}ME!jFzX#=I zzg;G=d_37#Ww%~Aqo1B%vhNR1*Y7i-9fUoieX?)Iau3@D?Rb3UyM8a479X>t$|t zPL-Qgd$X!{Bu)RCemU>vPuKM6rxW|F%>3@Y@5*XD{wsR_)$#CO@$Y}dPSV z33#fAMUtgXB_#HD#WE0cjd>%X-ro7nbe<&z3e% zh-F+YQ=slbWEcN%=ixVf~OIA6m>z=weM+N*C_$+(4d5;#&0+OiJ#Ym$d< z-@y14=?cliwkH7JB>DE$pEG_{x#7*EJl9!78o$+f@ z6O#MI-UDt;^1#*7(-x_%)Sl$cR$GC)lU(2KVBAjXL-O+5oxp=gUUzdr#;;4GNZxJp z)4)+AzqqOd<2R&fB==ce26!&XZ!fRFI80hh^870*1Ft6ep%pJNZZE}={Oc8dz*|W^ zd1ZaZ9i&|(U%fIEIGNRn(b@K_eFBE2N3i&Wg;_ZfGUUNm?JOW$2; zY4BLa;nHB>@l1a@N27ko3w{+3qHH`a8HJ{_<^Yoh;zbnlIj+E+6wy@6!NgtHw z@=Nv^dn*Bd2rT01ASoVL#M8l2BCv?3gQfi_w=@p?g5^I%@~y!0yTan@4~&ON(}+{* z%SA2HXz4ETpny`0$4Z?lV*1bO`Z11@wi7o5{Yg@#7f{|G(od7-5T6X>>1RrJiN^zf zD7Af&r=Kmw9}HvidD2+of+0N_&zDXRZ=Num@kf%xs}1q_ea4HWaN_Gb7cgEf%_JTf zyqxhW={Mr&s7;L5Nxqd)zqJ47jANzI#M2jl!8l%8OMJ)w4C75w?kbo*9?IV=RU)?e z^YXVzbBHHH{yU}J#J-UK9;sAS)L);>^FJW9Anp{x^FJu9B%TQJ!_o=j${;@~Jy(tE zi}pP(g#e58Js~v%7VUdNYKwB#p4VCaC#C(wZ2}z6SfsO3&FVbAE0&b{&ojOt#Sr8C z`K=_^K>25NLzw(~DV(@*V0XsXr0v9=>W^c5U8?jFrmt0>&%ZxQbBG&4`M*nYO_Y~| z^6yE5iTlHR{kL?H_zlP}m!(B5OkWN1lPw9v;{&-pily+&C_f3TTLuI3`Fkmo=d~;) zR{TF@T+pJ_=ILikxuSM6e%ex#IKO`i8OGHte*UN*fAD3-FImEg3xxuOXB4RS_TuB3FhU8Sk4f~L;V|BatB~~8`QsH(jub>!;ZUDTt9ti$Z@@7@-A2(nT+cplW{#{GOmZ_82RCP z$Yfj(%{An>9x@r%L-Pzdu7^y<_0W7nj_V(jalKD<`>??n zzf%mx_st9c<_h8 zZ35;peqb=xFBe;LVLV8wpTOicgFmZ#lCffNjpQ3{PP%G4)QN(FxKa3gU1K* z{E8cV61b$n&(_Ufob3k<9$&u-pF3+ zsJ@JQc@=Je>GS)KVBFVhG;ws)G{ytH))JTYpT~Hxm(mc^U*EZ!@o=x2#3O?@G9K*} zLp*))UdH3Rl8Nv5pI|(}t5hS@k3V>o@kFl{#05isXFSO(M##bbDPGCMHn2b1t6F2! zpE!ZrKijJl@ohhD|2(h##FN4PMP9!V`-1&TyjnFO{bX+6a<9?El|#6FE4|JTuLt=W zuiQ;BeJ7Bw^Wwzk!^VNKFI&Gp#AO)A8GJG@m~p(p%>ueH{>~_8k|!9W5zoS z#{RU&;LqwNG5G<58wXxsoNO@0lfwpMJUMP~Ln!~W!R4U*a|UDox@0iMlkW`1cyi6) z@qyf)8wQ^Q{@LKhfe)DcH-k?C-!V9)ez6i3>7K#W>iIEd2TbJO!}Z!T&TVkBfC-F! z3~m#!g0a)!K>_<17c@Af{$<8b8{81|OBh@Z^vfFDAM`64oKoMbBwJ4!+&HiV<5~va zs@H^ZU4xzVdovC)ctiauj6)4>9Jrow6N6LgA7R|w;FBP4X>hZEADO(3!C1dAgH!4| zo@M)KgBu4v$GC^V4MG2HgRy@73_cmyh^3D(xLsYoe;8u${5qUR7+fLnEtWpg;8u`+ zoWZjp{rd(t3mDJRPcgVnz%s_u4aWZcp}{HjcQg5XgXMsWj29WK*Wb zgExTuZ-afHez|jt@pcXBXE!()>Zcjp6YS4t@I|n{u)#?nf5zZ}ATMd~Nob$426qE~ z-rx;^iLCw=4gNLo9OFs`@2U}*zrk$+?lb-R2IKf?U~o$PqNOcT zQ-ghjYB7G*;KqS%7{6w40_5M`U_FqR|E9q=>vQg5aHAm3y$tRH_V+V52{^*wfl!}e z2IqqEMjKoX>NCz@9M6*s-T>*R8SDf0%`*5J*f-DMV6bnI!9BsAr3Rl29L?&#%HYO< zF^tz5yry0fB7JT!j{jW-r_`^-VLYP8d7`_>94g0|ztxa|X|=JBRTFgK__P$>0Rg|IT1NkeBy^!8hSNwLz_`@`T%;GYKuHw6FWvWoFn4*Vk-P|AId-eU*SBY*Pci>C zvbG}r*#8^GO|9|7aoc}m{EGD=am!$Km?X8b)@_0MCqcihwHNV1(0{|4OuP>CJ6i7& zHv|1Qt*u|-`l7zwt^I*TeS27k0*m_gu#QDJJMZP|#c=C6V1C}3m)Y}{RelxiDHu|W z@!Qtcz#{+N*8adE|322Cz#{)X*0CsO`SbPXJJxf=xc=;C^=paw#~-Z3@*iLgCoUM` z&v>9Ufp~p#3&w-2mx()tbYMKhTC3H=^&M_)11#(rVeJ4c>=|JVM>*Rs@%8RV>ltEP z?~buHXwCEE=bwDN8)c0p#&|HPJTD{y`tb+lau(^Lbue+kkOGV^ zS@#ovnN*JPx7Oc?{e!DB{@xna0rmGK@$#=*qln7{^YU+6uM)>Y{eQLQ?}+JbQ2#sD z;lvXs@cQ4kt|Y$g$LlY7J3C?e$xuJ5w;!=D)KB(aKzsu1Q@r;R*97~V-jzC|{!Xy3 zfOi;i39zrQcOvn`WbU7$-dBk$hj9NC^RD|Q>aPcR3GZISok0Gq_YPn&9?N)t4J`V9 zS??>rqW_omzJ+o&9{K*KoOg>ZJpU^e-2asKjs@o9zX9{_3*P653x>2|T*y*C02dunh~v zzwTK6^__3A@*8>gA|4qW!MM5iIpP|hL@{pdE%(6m(Lo<{;@iE{ay@x|{QU#I-WupV zhZy&NL%p4Ep&a*rqrIbuasM~on_UTlKCY)Gd-nzA6r5C%)~+%RlH{>K#l!8Ol%bZb9q|<)8H41T6f2 z*84cH@c&odUjYmMf8~7{<*fhk{qQ;O@V-3%E3AL>{qVQm*NJgIe9gO6Ka}Hs_=a~p zG46+d_Ab>Q?Yq9S6SMcWcPrwN!Mz#Z_f95`KRB9kF57+Lf+2Gm+ie5hMSc161jbHV z4Dnw<`xxi5Ndr)x@AGqv3)w0VtHIY87qN{cF0|tT<_e6Ksg&<{JbH^wv-shQzKjcA)wFNpPx50w@oI-^M=;8--z+Np`ESQP)v{G zsiW;2F`hScwfPO>az4H~G5dSidJ!xBeHiz$og-xTm-e5+IKtMK`1;O; zjEC7`h(`vmW<1*F9D(WM4<<4mZ}THA7;=#D`?du_4&_g=B@^4A{OLBok*Gfz%AaEk zC-#N%7ub#xuTQ?n@>^`XPuwZw2IG%yuZ-gQ!vD){eSk&(Sz(I+7XDvh8;x=cp1-WL zT_wizm$kMQqj`Q;EO`DBYfB);^Oty=ZzRg`{3XE_1w317I^C;0J72WL6Cdzb7$@2C zzsJ+F_45EO-({;yyvmQu_u68JrynfJ_zPPy@y*~ej1So=j6wYdkbjD;E%9#1|AZ}p z_$1_i#&(%_Ddhi^t=?F!FZ^@C)&W@f=c27Uu<*}CTVIs3{>jgiF4-;;<9X5*TZ?f# zKk@$AkG2G2JWsl5^Bs?JJWu-7HjNn1lkVE22`I<&q`z$8#CV=$k@pkhc~WlKHwx3^ zd6KsrMU3Z3KJqPMJWtZ(PVZxSJWt9eA0@`~q{4FDi73bOq-W$=BIi4q# zm8TKoc~S*gnv8NhPpT~UCC2ll8uCSAJWr}Ex0r(I@jR)nyqy@=!@+X7sVK+uq=xbw zVmwc3Cd(h79M6+l%7cmVJgKdGl^D;H+RJUHVR}4IdQ;v{jOR%`Ad^ClX)ZIgN3Qe3f`) z@I1yJ%ME6ue(edX8LyBB5MS}z!g!5*j(GJdE{~Pv4>A3Vb+|lU?n^8mKFWBrynuL8 z$XUjT@_pj?gVz{um&?sT{emHP8Sj)w6K|caRIo^UQEf^n>g z?-I`f|K_rn`Uuk(0RP(TlZlT;aDBy|K)e(5op#@am_Bwomlv=%AwCQBD`Jl)o;+;; z^G7lJMdI%MqZpU8H&}%F@zDRu+6NHZp#PP(pCg_)f%m^kb~y&q-}dAEubRCt@nq;>?YDu&{J7rEUa@0;S1fow9&7JQ zjOXJU?H7she0+<&#cE8C=i^EC{lvK5+heb}2IY7@{)K%dF`kbfu@_#8ay%bDVV_2f z=i_JX>=i%ucg2F|;}`6GiSc~=vi%}4o{#@vZ}ADH$Mf+U_U*)YKK`q{(t4ER`S@LX z3^AUM|7CZ^q8!i1y?mmGas4U#+$F~Ian&dMQ%sNN<9U6~5aaoHA)f|uD97{hqCN@4 zcs^djr`!gVK2m+`3xY=@Be^tL!ZmU(NSE#xsP)brY{ZoxAYlI ze0^u$ifn)Gvy^yb@H33Ve3Z{Hy?pou#+`j?5>E=L#kiYK3~~IyMvUL`IZ9kGMsl7`ZIl|5nJBn^0_{V#FN2)ANiEpis=tR`z-NkLA(v*%Y71v*FgKM z@wrTV66{~^(IuTLJ$+WUb|sU4WUQ^-`tl4A(4 zh*!BBvw=mt%I#PPEaFve$4Zp5{W8B#vO46Qm|y(CB`iPLQH{7@$a=;;j`x8@{;Fd+ zu*hF?d;%=;*Bl8bx8VJh?kKm5=YPe5_fz>DbBOVNs)$40jdHx7D&`nWjOWqMIxZ69 z{Zv^;i#?bg@24s_5{U7Bs*=NZFUs+Ls+uE;81JWQI&Kl;{gj`h#Xd}r_fr9mmBe^I zRnOtvk8-@93U&-8#`~#;j*G;2Kh@OH-~gt_`>9tPvBY>k)!I?`3zXyiR69o$G2Tyg zaNHGgxS#6c2tSDF@qQ}YafTT83%wn6lTnWMQ~ew(iSd4Fpu>3x<#<0e#4(r{@25sM zE)wJYRHUQ9VN8$rQ{x=5#CSjTzN7FFl;i!>6h{;>-cL<;TqVZ)sacK&M|t|$QkBg+ zS$~@27(jd`=n&%tj&sCi#(&Ltu|rP5^e6m&WW3DLmw5Ap2aH!c77#1`ju$M_Cyw05 zFnzA5VvIL9DiP=RFVFZh#~kA5s5*=j9lME3`!`^mo{aZ7 z5{R1}9?dw}ahZ5($VA3R96={ge?=V6|G1+s@wOnI|0%~&;@T6q{H)_X@fANVKko=T ziTX_@bNMAl6mey+@3P}6as0t~On%jo{}iS#7_yS_HAgSvt%4Fhp zAh#+B#K%A`D}}#A{YfcYUr~aHmxXYBU0F(Od6&!cDMyJXgMSJtmCmC6-~Api`BO?5 zac@7zi)?+b>?SS&{pVTb7V#12KV_A+U!i_H^q&gKSYjLWpGwMg;)xTAvHYtmh0kI7 z+kU+N)KW$hPlo9~6TGiP8tep~hAjW^GXMX%iOL+{NcqmoTs~1*Y^3M< zlay5k7i0Znl5&{zYmTbP_ygq>aqy`6z!!+;j%vzyn({sIno+L--y%LS;!VcU%3b2i zBYFW_zGcNqVS|FRgy^OY##Cd-xsM-%@rfS12O znM?f30ABtAWeIVkU0nW=vYNQ{E-wE_*+6_fg3A{wTZ!*RaQQ-IH!{_Kk&wZ!G^~#X*eaFIDmpWBE&!qR3SKGNqKk@vQu1 z${Uov+ZX)*FV`zwh{t@v|NnBm(u;U2$YYfO#AiSrtBfFCu=XO$?^9(QaqQY3fu|Dh z`{WMeIAu0)q($I@R@{w7{O>=3Ygl_g{TnKkqT;~y0#@rt2m zfr}8|A99KDb)^Jx;i2CHKTjMw>;~hXlq$sShW!Ryo4Cl@KN;Up0*PN->s^_16XN%W z=Vg3TX+^wXcwyl7#OH?>XM9WPMtoy7bT-&Jy5Lw}Z<%-iD+ z#XSo6N4Wf+QkrAH)A6^YQdRDP(Yc=AQ>j z8DzQ3iiV8;R$d?;xPr_7R$c-Y`AKS5L!aj-sl5zt&eBWjd!&D66t~Yyok)Cb6t~Yy zok84m>T4{0E_FU}>#6O5mja9Oa;wi?=f#M4l3Oira95T-x7q+%zO#?de>SxRv1LD> z|7>bIVr(B-?M#gABdc!_WBb_E{=lMr?CLOJVULeG3)55k_^2Nl{0_6nM_r37FBlua z*rCP~e>#@S9qKk>2RoL{xx;P#G}hwbF@{HhaJ zkIM_HD}hCRh18uWr~C@3Ul<(A$}gl|B>lM!OELcxQLhp&Yq*KYi>N;n<9z&-`Uh~N zjPvnRs@F|kA5q@ZYHncR|EE>OVDA5?)so0E_Wx(p=ZUfZKciM9Zr7jJub5h!`0f6@ ze#O)vU{PLi^#aPNe#O=A4c^M^FRtdl#qAp}mw@@GlvJ>zobL`YQ^w)Tt&4LV?3{_<{`#-UR8aH z*xBSamR~isByr&;_khb2*NEWq>S|Tux)EGnUG*c@r&y}6^K~_d_~|JQ;HJc%!uswd zwKee}Sl_**b|A*~sHt`*#`dVGzC*mf7LQl8)Ir3jYw>thOC3$zH@YAz?`1WLcyx48 z;Amjs&)Vu5l#@Ses~ZgF`PEi;l78hFUY?)&1#qNXD~8Mc)Z<2a9?$*NuMB>cmFKTs zBmG$`o@ZP~{e^hd3NEjs{%NG=`T=V0U)TfUbtNVbP`e|`K`=iyRr>%(%CExw*i;=v z@^i^uSo&t_DB{b>J%OW$Pps|BxVbuw`0KSpfaeNsG=^~tbunS^SYpqJZa({{SOdItTU=d&1sO=2i$MS2VMj*@Qj-F!NP8~`7%h7Yd z6NsNm`IhnP>IcLxru+arhZy%KZ>TZExIcMAT?H)qSD2cDa_V1U>X!!JV)=!sw@Dwz zV@LG?F^-u>#{Fey^*LlJ|4p^B!93o+ zsfJQ|EWfMToEXdRs#j~Gee6GP ztMiDl|Gce!OpN`bm%2uzhwe zzeyk4ub*oB9sP^#*H3j4pF7%srSGp6CjRAUGvE@$Po=bG{I2>O@rx;M09OGP_6$&8 zM>*LuKz-BTH(B}t>R{4eo5cMap^hg0EQ$L!LVcfj|4JUu2dUA-U$5lxe2_X1Sd=$d zjYm0^H&{(HnCCZGJxKbv9v`9}C&u;o5cQmqp2wr1>Scq&nY}|*$8Gj8n=iM$HE>tqv^4^H{YGuo%zd)OMJj>N8I5Z15bG z-#B$4vW)ZHWOX?)&Ucg5^~CuPa(kz!pAnZh$nBk?ZYS;=&E-?o{lufAxqPacLj1#2 z-aa3wUlRX5mHYDp^&4WG@208Oh;hD~rv6Hd{X1IylNjS)w3_=4`ZIVO&wskA5QmN9 z`A=610E_mWp%y|p`D2D!+~7}{y))G6q>tx`vs8a#JWrgZh7jX?Hd}2*jPu!S^)+Bo z-iK;Glv8;hs>2Q5%F6ptO(y-*W4~m)NIgOP&DaaT=ZQNN@ZZVr-wq z>TP0dpT+9m#MnMdRNGzj7q-t5)k%!)^RZf(7~AJ#wFEJ?&rJ;K!5Kq^t zvx&a~`8stW@po|ku})nWRqrWi80=6RgV&5yxFRL zNsRF(QN08#;!UD@4OrN-P5m3wlRev1+dZfsV?JMQQ=dVW*TQ&BQcDwm4&yaReSvt? zbngG{Y7OEKrgQ&qR|AkK{~c6x#JbbS@j=0tIH(2_8>J;J* z)4KuBCjM*(FMq$fkodq3UjBY{1u>qNA5hm5<9Yc3HG$Y?G+z&Xp>8M6H=3^pzfcbV z^Zj;TR^CDN8-s^2PF8Ob*Zt%@#)s6W{^b7S>8CJ0tX4I64&x(gIPtQLix?kOj{=MJ zTZ($d;MGi?qTWE3ox9^0A6IV^`|eHv{+oEj3|{{es_i~6f4m$ugV+Cr>I4?;eNwHD za%zv0Y9oVrc_-CQq>tsDR>O(0ywhqw;@6W{>}yZL-|PW=s7ly_b&^B2^g$~&*VU@$N5 zyc&coqx~1uCd6p}1+_IXmUmHYPmJYVRJ#L<@-C@!P)_AtQezC>$I82;ZX*4`^Lc#u zR{flK-h3V(zE$@TH=TN%rN68mA#OeOOW-rel>c|?MT0Lg`FCo82iV@_r}6gxQGJFu za2jv_AJsC%zm2}f(qC6!AhtwG)j7XJ+$56Ae^LX8UjzA1Y6IfpN4fns)E30Gj&l2N zsO^ZWjO6m0YG>lcBf0#h`WEr<5nO&t?N2;&1ef1ZhXD(J{;bYIIo0=P^&^9A%-)~X zc+#K0rUc_VY9er?yn0Pp;5|lqzMi|Q9x|Bweg?4rcb+wGiTy1K$H~PFxti&(%kJjkq#=pR14737OiXH1LrPdmp8=;)q_gSr#!3vW9Ed2}GA>xov{eVvq z<9_@_?Q3GJ|BKr9#CSeeNxMmm=W~^`yTo`tS6P#Cp}+8auCit)#`SO&Ee|oShpT8$ z5##w>Rjnj3p3ha)$`j-HTs5sKF`my=)BK2WJzZT3BF6P}b*(8ep3l|LS`*{>Tn()Q zu!w&zX_HV+{(ecDVKCocyreB5{m*Cc{YOo0HSw_-TwYV#04(yWrEN6yxnF8&+YAn5 z{;#FoBmL_m`TS8=^U96>`)eeRmvuDSNg0v7~%fgPp&52)J*qw2(_8M`>!d}3gi2H4SmvM*| zPCR1!NZ@|JSL{hJKZa^UfFtFjFh7QB?-7sOSf?WU{%ma`an#0%OuvCP1NAM@%X+eS z)==93e96*(Sq)}?Lv1Ut7~c)GU6`KAYp5Lr7Ueb6P7q^xjkI&bSY9LTJJhH08f#W7 zZx2ykV@(AXEG6tl0KfV^wrh^N6L7<(pTF^a`az6 zZ5zqafBm$*B(FV&_lN%4VUh=p;qBdDJ5BPl^SS(8?E>-l^SS(8?J9Ar*ka6{0opC% z_Oa!F{{R;LAE@P%v41q0RF%mGY84Ew!#G0gL_B?5Fylemeqhmm25UzRZo%Y(wFY)< zucl!CIIRURo1ek{aauc)WBtc#orN6U9~rN`MRGh(o}l$7Ii4p^(1wxx?@7G=QQ8=i z%kaKHls1{ z{#5N3l7F#%9ZUa#c8}yIwkH7R@+)zq7P%D5v~qYrPHr zg_S>Bn@;+9W-2w=`-s{+(tl=Ve&CNuULWN1wKXJf2J-n@Jjpj5=lTn@M3R4Toa-;p z_K)G2c>i>%wuIyrz}{urYLeFidzWb&NPZ697g(-sCHYUgxIdR` zyHQU5T%jc!{5mUth4u~UV?0=;T_b&r2dlJSNsjk>tF=E#j`w@3wcHByC(3_~rWo9f z<-bNNi7aD(U#C3}94TXeU#C?iIp+U~R-5FQ|0h}y$|?W#S`&i@vi#R;{Yby|m}!hR zXhTRpXv{p|_eg$iJs&Ue+C-B7zMhYlcx?vBcf~AY={IWgNq#zJ4e(NuR~#6}c$2o4 zD3$l#yI!W6}jPW{2J4lT8x7)Sj#CU(ZT|0+N{@tNnHdtr* z@6aq7#*4fA`TV$Bvja!Uz6bdHxLeCh^4TEYqdi6P1bDw^kM=CdrDc4-vsWum^1RFV zerK;%4Ve4SmzB3qYie+L#{0E!;*n#kFg~EI1Q!1ILW?!npUJ<_P9n>%?BVtv*3J|6 z-ox!ZtX&~q4Dut|4dNXjKcd|sKEIpmAJzUQwu1bqChO>r+-vy!kfJ$>eb?~umZB8} z7W3mVt+(^x@o`KWXz(k{-ecN4WVzP?UfwBf32>ww1^zvyts%Js{Cis4K=Nn7zo)fC zk|%=x8ErSo&w&0J?GVYEgZ`J=Ns@zPeeq?+@3j~go z=O6hQxCzN?@3_nOrq+t&O?Ny1Zcp;-N!FLyd79RZGfh@mtkjJk-v;)NT5Ayi+hjxs3$LHl)`g_`0;-jC} z0KN%sm}(&rL4f&HVTFCoVDsYPE+jO$a2zJVC; z>%8=>#CTulrSB%b9nHs2Eb;&o*3WX&8=Sr7URpRx6c1?eXM$W zgPXGYSoNXE@;C7R53>Fq@h$lO2U(v)jQ+LjGl{CxDK#794W8#oqN z*yGTB3p{L(Loa7AoX_cXkZHfC>LJ9qK2r7O#JE1v^w)@SeWdA~fJJ$_J{{%Me{_AG z!GoB6x}HS(xE{-=?<2^CybRWB1@vEtx5ECa zpni{dKkTmx>bVMXe+YXE>D7Tn{4S*X8$5>DTS#w(Oz)pRqlXdW`{&Q--GF&Kn9tG| z(?=S-oN;k|4snmQ>lpj$XHcK~Q$oLJZ~~K;(EmcF_9&%W3qkwQd0;7BBgXwiX}usZ z?k7s?#ff_zB(Py`apyE`0>;EZ!h!ndhE}2^clq1pX=xgh_Sr_^rgV!eWCz;9m*;Hy81?g`TIn5 z^;4ve{tDK=CPse+>)#WjKSK1IB0aoM6r$fHMt_9rQjv%K5vtpP#dv6-7ehJO(?Bm{ zFkeqJ(5sU^#@mLvKQYGJhI)vRo|n@|Z)Wgctba7p+f({pJMFdEd6nLcc-T%ZZ>;w* z(sTVLdW6B;-%a$%l)f{(pVCa9N&FVPpVCbKh#21oZmusQ#`l4n>z@Gg@tU8N-$LJK zaB;@3==@jx`1#WCb!8a8s`FprW9>`+XsI_bxH6Ns)O#Y!FT5MbxQ*VAxZb-Bfrk>W zjc&pCHT^x}&!XD^Pa+;3*Pd}(eFpKwxNzVFz@mNH>GIPL+tW_xzv_ne@%Cw_7e|({ zeO}kg5@Y+ku2(YBbGHJsMOnuu3ewp~` zi1Cbj=r!4|V43BG>vau|X7X^oJ+eH1%{<0$>)n9){b3AnAClwz(@T#aInF=5^id?o z{b_G~0?BcI+FPH7a_TRA^f?BvVEOma50QTD9Xl8g&`*+n(;fSOza}}Z=LYImNRI2d zf%;97<9aSaze93d&qe4G`;{l&es3K)%<>zg%fONH;3H>%^N_q1^w+_95t8?Y{yJDM zN%E#K-?H>WbpESh{P*!X#QXqU73EaFp?YnDZ!!5$y)EhgFu?A|zRzFpMEbuB$Oqh$ z~oAG^`peWA6H`h zo?eRmii+7E#^@CcuFd3Q^oGc?J)#-o@%k&oc_Z2a^Iz%W{`>;g=M(fdiNA&Q`2_uK z;+X^Zd2W>cF7cWH{5&^G9}XijV0}h2`DDE}aCG4l%id@Ffj$J~@~%nz{mBpXNa7Qd`1_L|=o5)!cTHjGr|Hv) zx9o}ro=@C*#B9dV`p3i_Ml1kc3p`u?V%Nuvr|TPlqvhkfRse4W7WJK>pG1A?FEjM> z2J?76L;n?7rt>%bPhvWM({uZx{|mr+Z?>)wmxJ}*Y`p+7<^Q4njKMtr5A~{)z9hV_ zGFPunTpiw5nX3m8e+}<9&C{C@{|fIn&C^>WQ~vYy_6DzI^_{Q3OX=}_k&pCY#Q46* zM>_x272bc;^;=o`h5BUTXV>oqo`p>LFVa6Un8)Kq`dUi=CCqm*dOYzZnD1irZAN-t z&SHJP!N*wsi}hDaVEKb*s{ZVJNq?Of7QFd#Yo=# z_$bEP^)kd^$HxJ`NQ~!=JM@=`@w{<|UKd!*r#tmnlv97%sV5jbndP@rKS}zv;XY-L zexA4)+^6i(uMn5~d@)PESHD4A^YgX9cZl)*`hEJ}#Q1*wK3#qm`V*DEUw0au!1VX) z6_Mpn5A*%>LA^S0(qZ1859)P@=fZt+vK~Ub3GSPd_2$H(EBXIl9nxPTZnu*E|J5PA z6R?OchxO?wCwmU-^9)X6_8it%lRp0c@KHUE824{S^{qyFUau6L|0)c|*F8)>MK4nd zSbhuspYwwL0`UmApShsFM2z=~7xe&QykESiHy|!Kmiyz9-h#OPSniKYdOPB3^SJyQ zy)$uRcz^X9{Vn2w^Z5Mot=^wFdLEx&zSV~jza7i}Kl-vhhInu+|NrRA`efp9ApcIE zNjx9q-{~I_5rc2B z^jG!kq>t;XANAjeaeeip{ueR&Yg4=ti$=kpZZ+l(s2Ipr@n;v_l>+g@9V3H^Katqd0&qQ7XJK8*UO0h$e(}dg$ypq z>hqT#giQNSFJ}{C+<$sGTN9(db2-}+qrY=GyAz|ob36MGqrY=I2N7R_?{ly^M-l%F z-{)X;MiFDY@ODlk#(3fFoQq8DVRJ4vn8!z(GnUd@Ch_mNOdV`xY|2^eALHZxS{8r3)j`SD7{8r5Q z9m&Jt|3Qm8eIC4yz+${ra4ttV*;B#!iNU*B`U=iNq>tx4m7FJualBP>eoc(~!^+Mp z#JE4K?7T^g_hVI@cZhMnTg53o$Lk~Jx2n!6z~cO&s?*QlW6Yka&b7$$>6!e#Ccqg_ zd}}7ZUkY$;Bkl+9lhk$YA$}j;C#mZ^OpNb;)pMRA#`nMKIWG`D4ga5C-}yapnNfWH zs_(o-ya(p5K<8cJ<1l{(IxWv*`|R1r=eHoIo%r-Vt{>#gOI&lWHGsX}<$Q`bXs-kK zS>hjd;{I{Z0|yhI-dKZi17}m>D;w(pw;`UjqABBs z&JM(@RS@$Z8dGw$fDPOJ}E0bGX|=l4#| z5MVLCcXBo-dA`|vKI-gzjkxq|cpu5xiMSWUhc}(!q(21W!<){2B>!wN*YDySLVR>F z*YDzdPjG)O@9LaLe6c^5cXiGn#_#9p=A2KA-_O&{xs!vA z=DZxTF`7e>Cc`icqhYb448t6%$;e@}P=p-vyRPf~`rNMH_m8ihkJokGhwHvS_jR9k zUww=plmox-zQ#4mvAy~lcU*rfrq|bat^u_-{k{hpEn)h74>VqY>F@6b8LzOqo(rs zVCtV|8BZdo{yD{X208W5DTe&Yot!`QXRnEK~b<0Y8-=h;SgnEL10MlUkfZ;sK| zb%ImTp^|9ryZ!t;!o%Hn?NgnG*JkRRI^CH%SZCGv9{n<+0xPRG}DV=YX_*K{M7 zjQP(u@?EzR_2(N0P=3q7SA`cC$CSqh?>i{-1xBe`Ube$Rqs(TU%j#4!6jW-&SWEqz!M|)=(@+)p)`oglm&JqJ)(fsJ|IaV9;D{gZB^!FUA zjc_vRuQB|tmx}dWWAsFMI-YDYK7gscHyHzAYR}Ea2$;P?tJqR{4;kBQ zmr>-py2y7Kkzy(2_NDE$*Qg8A_S$PSf~mhNG@gU0zbiCa!PMXFGhTqHzuRZL3R8c# z-*^+I{%*g~8>Z)<2aEwQJ^wsl41?+KKZ=YoF#Y{Ukue3HwOzLFLE|&{tL?IV4;r7t z)L$Ml7Q@tE9x^hO1Kabkv6FJN*J0x)*YfWv4jYxlUMAb?n7aS{On*;NVl;y3?T845q)QC^h7->i+(G%9!H1vDjZu8DFD3?JsAHRWR)@ zXN(;9>$UQF<*bnh=dG33D`$=G;V;*<6w^Cr?1R^=Yo~lvIj}v>8x_S<$NS53-gwxx zJYJnQEOKyF_4mnT#$zy7@As4$Pbdebcfn}m)|b=0V7%zMvzY${<3rS^_rc4JAEQgIE4E2zVTJ#SLF1*@ipUj5ei@xjw3PE&qFSw6p-D}2L{e|1UE-#uU!r_mIk0_$%sBBY zy}!Q%nVnphiSj|_bTYPIusH{&?H6n=g6Vp#ikSh^^;#8kHB8rQRn3hsU9VL&x5NJ= zgtQXhcQb#0tB>?3AAsq4EX0(5H6r&Xx*iKLOJTa+s%DnKbiE}$Zw1r!(j(@-FkLS_ zV#>b?xqpA5x*4t<*gnHNqscf)jk#7y~D1F}AyA2IVd zOy@`3EQRU(h?^H+IzRH8f5CKq%TuU@nE} z{HB2^-y)a!xx7!r@;+&9fN$rGRhDm&%bd<{o-zwyI=^|!+(*XxH#Cp9o+j!yH04|5 zvi|tIdBRaIv^Cpw^J>3pJzDc`b|)1&i=CT263&L^HV zTf_LCn%N1a^MPoyD@^AD(dJt)oew-`z7Ny+z;ouuFr5!HHHX7=KG4)0N5=X$GpD-V zCYHaMnT7JyKesS*VCtV+nA>3LpJPq=matqu>YroH{V?^ z1x)>Od$YZA;P=wOe2a1{PY3gT*F~beI+znspWdJ9WKM(W_}|H#181e47Uf?w~BH_Ui4*6&TTm+NOm{Ws0OQ9fARzZ+=YQXU^1uI}FrG%Jd? z1myD5`N|;kVde3-KRL*(fjnM)zi_bWARnl{UpUyTg`A#`4>6xaPS3}Om`#w=^Y>58 z=aJL%_fO1r$m#uqq2^04y?-#&lyBis`^)zahMB!!djDXU*$<}o4~CnAVS4{yxH$@@ z_YX#x6JUD(V1zjxrtOnp&VgzBB$)E87dd}=|6rt<0n_^jBhA$?-5(ldZd4B39~xzD zM^4*sv?<^Ekkg~>H`+V^)A>ZAc?_oWiA1v$ruPfRm}Sc2gX#T(G3GVp!2Qj!W^d6- zV*1!0#+n0M4-xyrSaSk7a6iwSrX2X*K$1BJIo(egZ!Sbm_fy838I)uC6HNKm0L@Qc zPfaktMg7am<@MG?a~FJXxy&b;g>HFSZ<1N;TIQ2X`IK3<57nP+{_+3nPd2Y92aYdO z%typsvis{h#q_xzC)Rh0nMB6(kyJAorspH6W-3h2M`oMysgj&OJs+8EE`{m&#T;`b zOwTXom>XbvevxK=3)Az9G*dn`lGCH-7jw-*n4VwEHIKmb{9>MY0;cB|^UQNFJ-_(e zyadzpi_gs)@TSi;i1kf3?t#0?{f1vOvl$uvlOP|Yo>Vt zrr+lZ^DmfwpDWB;aFxUI`PEAE0dW^au8;SyyuMs%J`DFOlKCn#6izIX`6|;<4(zX4 zW+TecURmaIuJ4NV$ud7ied?dro5Nx1pVyn?;JIt$_45XED!hD+ynfzbrohonWu9ZE z!yTK-JjeVB{!4vNcB8ohuB!5l=6d)eRezJY6;4$7CUX~DUyTp3*_3z9WP7ww<3nsV zi^*8OT(iWr{9a$K`8Ueb_rA88x0L1IZ^`!BYRbD(a(eWA?r+V9mB$Cu_qo3{Yfz5q z=b4UcJ5JnxGv}c`9Z!EUzl7;{`jaWIO4ahJ_uclIYhmhd_L{jcz3*0N=EKzA6q-N6 z)Zgqg+B-xQgZ#94}*KJ_<6 zW;K}ln}cSUa-hFCXmaG#-ySk+Bd7lMkl7G9?eB-pXJOjk51X+t_2leiKJZ8$XYPtS* zznAx0OU&msr%cOrvdB-F^-#Xw_B7$sW+QmS zcA1|xo4V!YbbmKnxn3;t-_3ZGzc+i8@L97L95QF4azB{fZ#`!YhUxv*bLJ>zIi6j< zD1YAkTv?81w_CW(T&yg|vy*w5nMt`A|9YSB1=A<~pT@f`7yot1Oo9)#3T`9*9?&d< zJGQPVeBEp>{$G}VwPkDZU;mof%5wbU_r!nQHA~=-n8D(|DtO}B%JTDqQj;eOKjaw% z*NRCIuHq?z%XfYyT+MR_9@{2M*zojdNA+{|ZWFHINruJv>%v}7DQsq+6prwOw5Re* z;w}k0o_@;bs@$ISf!JRnJ%i!ODb-#I5*`Kb${rx{M?Dji#|NLt9-=%Q`3;pn=9z;$ zbe+r}^DGL~Uq4d#aZd*F!|TT>uSR}eouAkAY=m#A^YfaX?XXupAFAc~0rhLC_bY07 z4j><;zRy+La}1uTzRy+LQwnd{EBk{wo-+8iy|O>3U#c#L)H0xUC#p@ zWPANkrCokS(em{?Rh7pF_sFlJ9Ev=Dr6FA3V{}Pq&*g8V|(tCN9z`a^U3%~0z zx={XHD_OsfCjsuD=HK5_2G>>dALNODnaU4Q^Bd;Lhu>7w8|jI9h4RK~dSgB5@RZha zc_w&n!bg-Rd*WY}<>m3OyI7uN&m=e`=6&HAo^rTi@<`!SkFP70uMsm)%q8BI>l4{X;bC;|L948uQ!+Lzt2+&&rs`k$P@B9m5)^Gcf>OQE>_F;vnL&n zR?Bz76Z8g^->H`Gw5I|5s9L_Wo*D48LfJkSJh^bAwz7Tx@EC7W{k1B;*B`Hyyvs!1_E$$1ksI z+8->}bo}D3>G<`iYdU^C?wXEYbzRf(tAT4eel>DU$FC-?>G;*uH66cNxTfP*Yu9xA zYU{dli)P~Y-oZ7kPiNN$TfHIjS6pw79Upi z5#_$2sp|I^=x_Rmu2By3Hv>X9DF^zS0ipSni~dF~|3{%wJ>>8CTm@SGA))CoE&uS) z;I}BJ^2`dI z1c$^F2+s*Ehf|Y}3#W(rdQtgWF~18h3{8N`cU}`-9GU@-Z4)HU1ilUpd56l+{>meq z85#}Whd-vc+cr*kO=!rwR6j>8Uv_9TTv;t&PUsSNhFZQYp@ndy zTE4u{2Jcb*X@zqB`JwS}qqcJXJ43VKwJQHUv;^*@^4;$C?%X0?l>fu+);mKgnPNJ-ctH~*O752g+FxNvGr}? zk6kZ_wL4V^8ti&QtER%AxXxA6AK|)sYdQTy*OyyKk9U1GR(gu-g6HM=<#gAhVx?!f z?x5Cpj%(U~(p^_n^Izn;s#?FVTyIeMH?FIy0NeRy|tX*HP@G0N&oA5hg!b>Tn|&rS1~N``>Uv?7wnq$_iC;; zsNCbas+wQ8>x*iBj_V_>Pm1Mz)OE+!_k?S@KKDEqS2}fEcWx0Q+`u*M|BYN9Y}G^L z&$v!%Dfg$Qu7lO}$@8w~D7SLmvGq7nzpd*9v5SQ}xTf>Xj;?c6{g+%#AybM!LSJmS>FX zHfnjsyFQ}Uf3oZMm6O97^_Klp;QV2FSZC$H`NNE`Zpwl4hZ$kLC>Q4svOk&`Rs>Uj zG&?NzeK|dOy(;^o&%-id+MWx;j1MTM{%CR7Aej22rD1zu>W?zQqWe&J>W@~0ErF>& zS{-KerJVYs^W>P-B0r>@`lH=pNy_qib-UPK zehSNiLt+Yr_lMQ!FU!vhs+e3Vd^ju?t`T!d_*hsbT)y)Gaiv}oRt%4AQ%(3}SmOay zKQ);P{~p#0t`$>H_*_^%Jo~Gr!WYBJ;Ttg>gv-O?KBD?LdwU9B4jTk}+YS)E5|$7D zyhGkO_&cl|j%o9m@b$2+A5;C^JLLRthb6(a+sOI<7gh@AsP%uq8#0i}S61u)kas9N zZK_=VhrLVS>&@l*SN8@FqVhA;`ql6@h9lMbg?rQBVzqp>Hy@5x%jfsj9ZdCis^zQc z?Fv7tmamRC2cA|a+vf>yDcq>7Y@a8+(L<>IT9rq6d&9j{{Uvl z{-zw*|C@NrD6c^0C(nA@eOssc|O#^+jST%51kLaV%4UcVeSh%OR7;duWoN#Y%&cuznbMuP?o>fII%ow-b^?o=2hYOUf*b}PjX-3#ojo$R?JZ0uf17t`OYcA zncfn3Y@0d4tG%5PseX={{swO%Tv<&&*IN$HP}AS;^^KwOk!t!oyCp0`n`JC8)?p_JJTqq^XIq1XTWs+{BHOin9iU3gb$cb z<>~x+KzIpE=g)(~JI$b+&Yy>e=fQOTJUYDQOv>r}d0hAmn9iRkhL^*1{yZhT(`Qtk z&YwRG&r+7Z*P&wj&j>#bhr~<}P6>~lCCkg_Ve^FNh7W*i#e5~49$pBS?_4juDEuZo zw#_!-#o_TORKMBO{lZ^|PlC@iKPkLCyc}M+LgrcFzEmpT@OhbMhbO_o`>zXc49|ka z(~6hH^ZW3S*;GDfuSYm9JR0`4eN=dRcnbXO>?XqBh3CN+W8#E&hKJ0d`r+TnJM9JG z(eR))eT8?2r^D~ekju9>yZ~++BbV<$c!M;m-+Qmji^JpL(`{saJUkzMUF9dj%i%*R zKNa3}F4do_*8g015*()1|6+IN@vf92Cd};6uwS6D*<-?JxeidJ2I@NEYwqG@0C-{`wex@%6UZ$4c z>nnxptL3+R?dMbd9;*HPzM*hS)qaorO5nFu`_%OXFQD=#RQojW4T8I>ypeAayieuN z_$n==@+oTmO?^?Yq2~X*FCE^i+OM^*0N$qBudT1<=&dN?>t+NcdG><1eWGSe1A4^@1Z+9`DPAmllo{<=^z3fjhUIDg2i2xi4k?!11=1 zubXn9j8r*hzU`;M`7i#a9H=_3m6>?AMgj_3i>+ zHcZ#Mi+zz9l+*b`hA#!C>)jQ;pk{K5bu+1c zEmi*)UkY5lQ$DFX>C1!1wkZ_;-B)u3l@H$kn{b)03p~B;Md5N^E}XOXj__Z;GT7TT z>=p6*_QkKH`tQt;^S|Sp1h-Z54~i&{zya?d`RV< zh#FZ`ey?i3@Q7G=n_7Q6A`@Pv+AlJq7(SxrUo)clYO3EvwO_r6zVInk|H+6Vc!p}f zrz7sbk*a=^h~8_ceh;;N%_36ZmMU)%aT9)9Eq`1@&9zkigj)Xg5i{VfDt|E|7v87x zmm?yxsr=f)#-csDMRbCDwQVgNAMurP;P?1u#CGMt@3BY356XexV~>a;%Ek4Fyub2R zMASN(e$L)_F}+?9Jz#I!4}{;1Sf?DA{`(R8l>^iNAmXTUVEP|Klu}-S?$`8*=(1i; zU!HHt`!xe1@?kpP8XQq~1LbtTW>`czO!sR>MFizgPWNlZM)Za0e$9l4BAD*iOo@ov zNag8%&8HE`Fx{`29&rVx`!%y7;x|!wx?eLVA|IyvHJ?Y+-Ap;%uUQz80@MAP#SuZd zl+*p1jEF%nonNhpI1bbOn$;1pTc|wUuUQw73DfOKD23^M z&36&)zoqhYzvlahOqlN1?1>1@lli=$+EYe}?YTFiFlwPJo0E{({8%Xj`Fd?um{9^0l|xGbW}cB;R8y{!LdL?XN` zPS(E?Q35xcD)Va*!8@q@x#lvz5z!a!G(+aMBhuhTYX1L4T!VA=R(iEU&;wRvKGpZO z4Hd3rCBWa#t}9&G%78D%G!YKAuEA#Z3&K^c$nU8BlDOA}t653#J8J%>l?As|^RHor z?4A@ysWLPU(d>hA647$ zNvi}tptfHlE3Sa*=cw)1#2N%wR@<+sbsV0dwqFaY()Uz8QZ0Wgt2ew=u%Mh?EvRKCwV z)@rRhKKMpcnUA$Px#i__##vomPZ!f4XN^St=yA)0CtBm-HsjVRPlM-=+bTTCnhmcS zSD?HQE*^70c(V01d}hqg%31I;>U%;{tQ@%IZn=C@tZiiRzLQ+Osn++dWj@s^MtS#cMuNeg%27`g^8K>kT+gz3-T5y$6>RjuhorSpDHMh2xZmDhK}FW~G%# zIo5ZjHOY1BDDk}AT7dfV)%>!orSLK}zbtDNd}x;3-m9$*@TpmHe_d_mkum)>R)K5z zecLtGFDU=As-JD0hCf#Iv#mei3MyY`U4@y-*I9RzM_=GCyE-f~(K;2p3shVSA>d{1*J^;yS_yt@q)l7eA@|F-+g5I%Exp z>HAcNta0$5)W)LxVQVU!l-g7|MLE!3#nx=f(O$*Y0@w2WNi><-)}x*ty30% z53xk%N35-GdD*TmRquU3V7wajR_+ zZLeCB#|fXcI>XOQ{#3a;Oygmkv))!7A57z6oU{5OKQ<{%ls|6`f=^HSQh6j?+-!w# znKd3h+ib1!G??1^f;Aha_P$^(gd48gB+6g3zJ}Yb%TvyR+pFKlA6Aa?_~5SU_wk3d z4LSY2NxAhs^5>G}@u}P@QVtvs|Fj-GDBD9GKX!@f|7kUMy)b3d_?%N6?rI7 zzEt>%^_=TJg#WU7!#h_0E&R8Ys~k9jXKtq$s4DxPG_J!haWelrO>7 z!3g0S)^)hyLBH}nn2y&st;&aK`_l3Hre!Dx_RoKGyiu z>Iu{D^|sXqrvB=VH4vu$>W-B_#`N!6Nv{7VrhnI3i}JMpRkSz5wEtDK^I_V*D%pEr z+P^B<2VvU39<+akY5#iAJ`L0U^^koLrv2+7`zlQPS7rM)O#4@5yHc@izd(Bh+YOWh z+b`H|?7F*HpJ4lCaxk_3!}jYiwg1ERyKqU-2cmq4{UQ8!(E#O7VC&!~!qx22aKnQm zl_x0&mgf;Wi*mH@BX*AKBvJkm`zO@T+L0`5*oWZFJ3dqX72cC6zqfDNzr(*}%J1!) zcDZt3ejfW0<(QwxzV2H7o;>!0M`(YmslGQIYFC3Bs_#vQ+Fmm1*RZ+kxng;0*lkdL z+k{oZj{PEhbiz92Zg7u;Tw!MSga;;USMCGT@15HNl>>iY#_a^2ZN z_4i_We!GYqO#N9c`#4PfSuOh%Tw||X-rDvB_|d&`d28E$!-G;~UdO%#C#A}~j$QF6 zwbuppef+xi!|*@q`}lS38Zh-|^=t>G{;Zx|3#R?MzWpRj`*(f2iE?23Jz+;vj`e-Q zj&&{nzVQjW8|u^b#gleVn659LwEMu+Up-|HgsH!J%1%%Y%&(z6n{v#rp}oNMiEiTW zS?puv;A4|+2{*A%!lx$%b(b!K-$|}4{H%Qi{wTSc^1m>(zZebX7_}$0f3#f{ruKi% z_Q2Hs&)GIi?cdaX9H#bfYBzwX{hQg1VQT+ob_`7I-`s8kQ~Ni!J1Ym;BgXDRIocz} zj(2@kw112}4)y7KldbHjFnw>bm7N0rx>TNTx3<&avrFagueJRZTv90WIC}+rrcmZ_ z_Imig`7&=~Z-uL>zsG80?;>OQ+S+?v*XS!XA_ z*tg(m>zgT8I<6m2U$B#v1IN=B>=f7X`rrlo8**@#8sDOmy$0T{#<%EXZ-&RI?_<4a z?|^5i?_<4a?;&G-I@?9A+ll4rY~MwBx}JR1e(-17f9QJhRr?XR>+Bw)d{^5G_niHK zvLD|3oovt7>^ks|-^uoV&5nZUdb67y4b$~zH@hWVHEH70;(c?w100$(Q~4ETc|I~& z%rD;V?>bTVbvpr$T{BVm4SOlo$NIi$uXO#H$ltW{$-zd!JmI(OJ#b{fBISed81;Sm zp7zghviiP!Py4iTV1ItwuJMa%FU;?4+i@-D_qP2s8S{I`ZVJ=<-mzQ5-PQcwwL8M^ ztNFcacU2C|?>&18<(S`l_GhlY7V~@0&Om)y{`c)Hn3n&2dn0TV$m8(`_BJ@OKpu}j zuzyev%&(7qlXA?jj~(=DV14EM`q*A_FfD&So5QsH{p>n0&F@3IAx!i8(2iCP%&))w zA?27~e|w1QRbqbq?PSzXSSbJA@gqA0Ua(O9z3@l&eE7xBHjDBf+h4)2eYQ<`B^lEn zXs>r&Ao79sPLyw>t_KF&KfyiJ^}t~Juv=cX!w~yd*E64~Ap8f))Ayl<+E-!vKGabA zj$2;VA7)o73AAUCnEx<4lpOrfiW1@BwhcQgWIo)ksVsjF=Y>buF|Pj>PO#(Q@YVkc zkF?X>yi&Zlzi6*>U0ryzT?j8*?G;Y6Lrw&iNB%p;uHpJok&m%klJWhK33dnN!1qTc z*smb3rH%&^?KhA|spG*!`#t0|e$*tpKXMvBYLYz^IgKAR*-k`G<3~-lCnG5S)<=TVOBJJnv|x{b)E+BZ?3&ZkrCpx@N`2GjX;id_Y6xNd+bpK6f zEtswcX4{X!bUiTJegdZJ_c`|eV7h*vV>gHC`aR8#gX#J`&3+N4{&ueY8chA|T)QVs z*YES}4`8}}pJxw*sXzYQ9syH-{JEV3)Af70oeb0Ud%B&f9QZxXx4)qr?K$6G<654d z%(u6p{`NWY{AGdtJ$z`6%oo`El>^gTXcxKlWxFr5kGmcz+IOKHc9OOSeb0WW&0zYT z{ZhL&OyA%9+I|YA?{9u>KMT|MH#6)OFnxbB!)_1L_q~?cU10jY*E0Kcxa^BrVtKx? z-+?Q9Iam2ZxZ#(JgqPbx;I>~bRUQow&R-#%X-|a5M~dt(SJ-LFzheu`|5?*Uh_3ngceGo3(DcgIK{WE-gr)=*{_G$R`P?>MGFT&M^$$YbYRavgj39-DncE~B&9@1sP zTkM+f?A4crx7xjx1MTsxJ;1fRfB&uhDLI&yce|Ym)ADY&7r=CU*yvNiDF=RU-`VDA^?Sna_d7enb@gY({ZhLv8RJF%V0Tsyj2HQX-5ohC&u;r| zRWJq@PuG=8#Y!!(}8PxeCP!20a9 zH!92aza`pxuf5;(gRfTzDzr=B*^}j88t=0o`dwfD{q`fS<@lBRZAQlUl?UuvFwOsf z{gkqtU$~fFk=@SqW5NgRUT~kRdcue7B~%~neb~-)Eyo8wY=2M2{(RKl2UB|o4zj{%pTN4yOA}=j?Z3y5Drp z?hn)b&hz#s%7Ocx=j}w~)PI)QlVIvU%j}sj-H*Cp&xPrJ)CK!XnEI!S_BSx~PZ#aA zFx`*(!`=+j{ir|ee3Pv8&&cV1=b!c&<-q-qOZGEo1MMUK zy=2F@miOl_*#pREuWR;DnA+=_JqD)s_{W|MQ+xble+E-~T({@J)E?LE#W1zU4SP9E z?Qz4-hN(Sn+PN^b$4&b?<-qUbU;6^(*#7_8f4P>&vwv-IC>Q?*#)rLS2g7uK)OOOymCsIfGyt|2N1PsVskw9mV`AII~@M6Mn$SgA-T3C0x-l&dcSH<@*X(a_YJM zMEF4`4z93fl<-5&B;~;IyRtLG^<V!2HADDeXD7Tl zb*1uNIC1?t;SlFAJZ*iRa*1+adscJWm#OWA?NQC?;#zLcYR=na9KRoN`oOe3A8`h` z<>hp$I|;63{p!xt|5x8|W+?}b|Av#UEZc97SU%HP=lZa)$0>yE;lBunIw2SI<*nh= zaD7(fHJr!EV!YNX!eP!6uxGf;!<@!$c{v@g)7eG0s5za?2 zjh7nX42NmFRLdC)(|Dh1feQ^mEM{-chc z98BMndfcf4)AytvccNe#FSVu<4byn3HJz4ZEPpMhgKI;yM=j@Vl&9X}r|>&I-4@Y=I3caSaE$XjJU(r(ayz)i$OPf%otNNOM~+pFhkGPU7H;A6f(Ir{SMCSj z8$DY%))@>}OH5ZD1&QD&N29o`kq=_rxd2| z$F+0HP@ldZ*UtG1`PLObi0QR={zblL#X;o<%BlTdI($O7gHsjmark%T8p?tG_XTGX z<=7uyaAvr^D9XR!tU!Gl5A{W79Zch)zUXX)AKQLUl<(~9grm1teN%cbOwZ?Dat_1v zeC{QugpB!jan87wo>QsSgJk(bm4@~2sc6BV6#zXDuJPy-%sINIs zz%(A}YffY3!11G-^8w{po^H;^u6Ky#>E?_@eHsrn-kAc^`xf!eEVsN|?$@1k*Iv;c zuRFI;p2mCX<2-PQ){n+}>f<~N)AdPTClsdZlfI4v(|D-;oSHC=huY715~lHVr!8G2}M^0au#(Vn684T0!<6~!} za^Uyzu`>brOZys&_890)gM003sys(IuzwD67E+GwG06GabxToxkdu%4bp7**vj?W@ zpHG~FFtx`}=VzGOW2kc)uJzpuVtT`zi*VF;U6ikqG5_JtZP#)<)Zxz4mudUac&JHE zQ<%m>O>$bpG#=`Brz1?`p^kUD!ZaT01g8f~|{^4z%ZF=Xc7nK9ik4Tz41iJK6DFq4lBb&1p^~OxH)#oO&>|_jIQbOzl10 zX$n(&&v077)ZR0kj_@h7_Y&aNNYn%HNYQ|GCaS z*C`^O>->%K329lvi=12V__X!P75}34O&GpK_zUM@IC=OEHa{5vk0d91IwHY zn6A&4IjfZe$Iow^layn5zH!Q2pAgIcjT8Mhtv`*oxyFfw>3h;^oDML3PkOEMGECo- zUhBL8)Ayvaop)jSo^-a;ACCT^YL5y*>zq&ExE~DVM7ZzzaN+gNBzVaB$CPKn$2LAC zyuq0ZpWFDH@|W=3oNwS2%R4Hsg=zoY=xl~*|J~^1lhHn#oIS2z5%o7Yk6oqq zq4y_uIrU+Be{z@eKbX$13Y=yzonI9=aqu?>MvLiv?{tE54~$oS4gMz~S@;L%Ex7u~ z&y+ua>G-|d`B*t{{NC-1Kz?ejeEze?83$jTE1&=Dagt#gU*$(91*Y*;est!;FCCsM z=J%8H72M4Oak|5UQn!lbJ?gv- zC#B{q_f-!3evUaGQjYaK<_vYcTa-WM{DAuOdoFeM!?eDo&M}zIA5J+ZVLE>}<&?p6 z{66hmf$8{t+W8lzG=J-Qx&H3hck``rt^n0jt$fK!&&EXn9d*0It^et ze>mqfhUxs_oD&1n{&(JKqa4`(&O4ncNBfjH-CQ3R?NjEwkNU?po)Ny_d<37{DDw-> zaJRf%uZzxD*Rub(=qyBe>OcN;zE%$OAAdSo$f^IhOU?! z`^i}TE6!2Zm&Nj3ajv5L=Mx@!OT3Tg+*X$3L53(-x=!2U*v3%dYfgyr_~3IJxpEkC zI{y6QFqn=%|2VbDnE!R>DcAKy{p(H)%5OQ?MEHi&Mp=#rDf1gnXScjuj+;(5*DXbU z)0vF=w158R%!FzG{Lh&O_u2KXD1XoS5+1Tkektyrvm6e~k?*Gmv9)lE9Ql5F5X*&E zZ;*KfmJc7?AoB|BM|hU1{{TA(uT}LQV818_es2|7$PLw=Xpf4lhU-sX6Zfy!Zx+)tA)AQ=8Yz%xZ zZ-SWK!)!8qJ8!0PigI9mLYVKSzCIx=()D~%K7=(Si}8h)30Gs!!Wnrouf}5C@^U(l zu=cLAMg9nzjPkTTVQeN$>l4Q2!E`+JvM*seo_g7Gn2x96Y%NU3({Ppx)BRi@%ZKTH zu8;i))AQR1b`YlLw-M|Yn8qiv*lC!?C$iWdFddI=b`_@MvCZx%2intN|51+p!(k8o z8)#qoywqW>$r!Kjan=#0@d_VjU154&T9fsF>3L~Q_C8F{OKY)@V0vC!iw%eAd1-An z7N+N=wb@jdo|o2PvtW8&T8E{>^t`k#TLRPb(zovmF4}}2;pe9$aPKO=U5J$KJf|RrtF$>;Qn?qcE@!S zkvC%zx2Zko{`T|iQJC&;KhNsJS*h(s`4;SHcynrJS{L(4U`V86h0Kk+Sg8m9Y+Z?QjMx}VsSU4`j>Vo!Dlru&I+vr2cV zJ?Vbp+pHQ)=R3Vvm~!BJrx)YM>3-omtTs&d3*TW4VY(i8mpu#9^}xF<7N+}!@3HpE za{MECzwkZQRXK3J-J2CqdF&6pS)uFYVt?q(PLuKc^aFNLIq?3`2ka_xI)CWHZX>7j zhd!**e`@_P{k|;3wH&{wFSE%Qzo;L39H#M)`mqLXc{!aAS!36-{)epf|Eu4hb^L$z z`?Idff&G5~``E27r#FBlxX$S*{$8CGkum(ycG6inBv!`TIxu2+Y%zhSyw z9l>tFbiF!)RlG<016{8su!mu~UQJ*%V7gu%$sCxjS4Xm1FkP>XVo$($Y$9ZctoiR>kq&KDC|JWS&kjbXiD8oy`^>qo}+9Lol~KHXD{m&N9x{JqhC z3r}EQ!qpPxmwhL&<#3OLd%_dhT6kc>gKtac!Xrk82v1`9@U)R0mUjxf;aZL#G=((?62k(B=d*NvGlMmT>HKB}i-BqUpqZ=;Y3O-;KCFJ`a8`Ay$a?m@=#FJZl1_ZImQ_6f@O+dfG6D>fP)v0dh0u}N-u z`MX`pX1E?L@}+Dk%HNwkRXBsKghS?}DsO=4`QS44Elke`m$3rnQx%34%ISZ@ZdR4; zd8)#w36CiUKTM{4IjdVk&zG}knDR_k;^=uMD~Bmx!6wzx^A#)&rhFwUds5F=vYRmF zt5`}CJzvF^z?5gP^k?-vi)F%;uVzc4^?WtUhACgeGM>}(H7p0Fd@ajts^@E2E=+kg z%V?(O*(?X9d>zYduIKAmE=>7)wkJ-{*R$g=d@b`}d$zJoPL z((@gxIZSyzYdl`h^I05B`FG4WLC?Qqbz#bPvKkZhd?%|3Q@)EClk|KSi-ajJU@4RJ zynro%DgT}sQ}z6N770`S1IwMI=RdGLFy*^h<5WH0&EjCn_ptQ&dcKEc!j%8Wa=+5^ zAK4z5@}F4r*LwaFYY$Vtm*r&W`Ce84Q(nk?YxTU4)rBeF$NFy3^L;D$o*!VzFy%$8L9w0}vF0%42U+Q_dVY{yfhj-4(tg+TLo5TP{4iT|M$Zqk zESU0QmT^|ki&+j#`4N_RPS209T$u8sEbF|UA7yzk<;PfNnVuhGxiIC&*^&!-ew<~) zl>f{!FY5WvEElHy7nb#hp8vw~V9I}GIpuo(D=UC0FJXCq>Ujw(gegD4@-ON6304GC z{u|qKSG?%g7pD9VR``sb|G`RN%F9_&jGmXX6qxcq zS@QFG{wGU^DZj*0TIl&Dwgjg9GE0lq^UEv)ru+(9)Kbr{uq>GJzgT)JJ^zbk!j%8b zQd;Zz-)sp?`Bj!4r{`B$CQSJ?wxo@oUt`%Y<^QmZwtD^#%YiAs&X%;(^Xn`dru+t5 z)LzeTuq>GJo6Prup5J73VaoqyX&v?aUzPz=ev1`$)$?1d1g88ptJG7^Z?hUO<#$-{ z+j@S7`C!WLvXEYSewR5g<^M6`9XRB@^Lwl&OnDH$*-y`dc<_g0$}8|I zFr8ml;6eTM`~hx!qSt?bN5WLUA}<)F=M{M|OnD`qH(Jjt@j{sL2YGIyoha)TFb z)pLWF!jzjlvOv#G9tBhG;l+h|?%`)(%0qc_v7U$WbeQrQym^V9*WjIC%ENfv2|W+v zU17?-ywh)b?&UpT%ENh=lX@P`d%=|Zc-K-r_wn8^3Jkif+>HL551u0kMc<{<&W_}7xnxxo&;0=I3Mtbo^pj1o9Dxn*Wp=r^}G(xgDJ1eOCGAEonO@Dc;H{pda<sr^dgz^X8aCJ{bw^C(pk@&^FiJ9`ptO~O!Z^<@m_i!!^>dGpXW*a z^!$0A0#n|CpBb#@E%-H<@>pIpO3!0?DNK1werB|ux8&Dg%3JZ9iF)3O2ah3B-kRTm zY5iOCkg<9m$8W-v$MN8CdftWyCF#>|!ws0G-v>zA0aMv?q7t^R6)EFY)qhJ%5Scfhq68lfKpSE<6RM{AE6=K+j+1X)xul@aRH4 ze}%V)DSwr>->2uV@_3l?uDr{BJ@3kU!IZzodmYg8*Z3fq@@~9$k)C(sLt)Ch^Pvaz zygQ!+Qy$L~59xV4p8-?;I!`#P=dbf*nDRIHwPHPggI792ruk&QwkPm_> z@6QXodfuNG!;}x;XSkjZ;MZWvKjJg$==n!{5ls2Vym6GCf6U`x$_MhCMtVMw7r>Mc z;*I~O=Yx10O!;7*(^$_3^8%RiA-r)DJs-m3V9Gz?InV0(C%gcrd?;`HoSqNmaWLh> zcurG2AI1w{%7^pD&GmdZkAo>6!5g>H^AS7_raXbCzoh30JQJpTB;OOS=Og)XnDS9P z`5iqU#nWNRNAvs-^?Wohf+Nm#6D_62AjeKAzWHs^{Z*W0>*@e9$UApTLt~$|v&796g`Nb79IS@zQO2 zK8as}DWA;KzSr}~JOieDis)bTe2VB_$dpgzcZ&6VDi1lL=gB;~M9-6XK1}sL<+&&H z{8PRMrhFRD|4q-Q@gkV=>Ac{io=@k+Fy%A&o>D!Z!H>g~&*Vj?^n4~Sg(?4xA3v?< zpYbx7@>#s(cRioQ%VEk>`0+D(p2Evu%2RpKSv^nXr7-2QdGR?tpUuy}l+WSE&+GXd zUItU1#!JieJdIz0DWA*BF6jAOeiNpA9=~!?&*$-=Kgg7S&TqnWe)%~MF4yyP9`vVP zKb;#e)t}FUFX{Pw?t>{`z>Uj#zJN!iL&E7N&eLZ+uP97xOrn@+G|aKYG4|cY-PZipO2o^RIYUnDV8((+xde z%6q_+f6cqz)bp=-Zz#S<#% zc@|HGDPPTpKA`8T`6QU~HT+sdJzv8sRU%WqmJfYU&)4!vFy-0&+CzGt%_~*b>#yU9 z!Fs-q&w#1^dVZ&hp0DR2RrUHCc$r7fH}IP<)z9I@ww~wkGce^Fd3jAe-^lO4lyBk# zYU}wXo(NOEnU~km^UeGYOnELJP*2Zuc_K{t7G7Ro&$sY9Fy&kMfChTLl_$cKf6IG6 zqvzl9p)lonyvOr;p2r8klyBo*+v)i>-W#TTJHPp|o^R*DuaGI=wx{5O6Rru-y7vrf-X@@p{VrMzIPo|p1snDSFRE>F)-@vboCr+L9PJwMHhVak8! zaXa+&+<~3@^d`lke;98$uQ;T`L)A(ex6q7Fo_J2rFY*~M<$v%+m-PG(o&{50&f{+Ac{%S2Q~oE< zzp3Yc@*OT76lJ-@^|!IWR-xwrNFGT#GJeuX!_tLImE98CFNJo`UA|BL6tl>g16 zf+}n0H-Gb3nDVPUsfwOo-lwFsScU) z8$7e2p5NfPFy%LSk7zx=$p^rc|I3Y*dj2nugekuzo-gS6E%AJTO!;k|@QR+_=E*SS zcX)$0_52QR4pV-Ym%gXxcli~V^8a|$M|%DrkA*3}$IlGa^LzXnOnHz$JyFkt{FyN2 z75q!a=y?TyHca^g{>-s@{(wIhro5s*dz_wE^ykBrSMuj3>3Jpp9+>h6{dwc{{6T*q zO!-6pf(d&5kiQtFyt04KL_M$UKMqqK>@S?8=fVCGnDQ$AqRDz*#a{|jUe#YbMbE4H z&%l&F>@S+C=MVc!Vah}Ndy@4$#D5&7yqdr8Q$4TdFM%n4#9uT`&mZxZ!jxC{7f;vo z>i#n@<%a+G3_UmeWiaKYzhtJKoBnc`a*x0CGd=hCufUXt`pahNd8q#;OnD9el@vX% z;SWkBQy%8O3DfyUm_K;7o_qa4bM*RNzX4PIaDSyVJrDQSfGPL+gXikG&+mgNkMM`g z)AIcI8ADyk| zkNexhl-KlM$<_0k{-7;n%4_-iey8WP{0T7Swf&Jl>3MB`6ij&?f8D)$UdJB|Q(o8K zpis~2`kTX)*Yij1)AM@%SeWwq{s#N?yuQCVO!*W3r~`Wbgg+Lhyn#QvNY5Mi^I^)L z^hX`i^C$hWFy&AA%YM=Gr~Efz${YH7m*{yz|4^9nD1XTrJ&*F2!<0Aj*Z5P<8~JO( zlt1lHyQJq&`!it5|K~TZ==uNrkuc?r{gZC#d1HSXO!+hZGnIn1^NVNv*I>$<_;af1 zc@uvDO!>3^8sU2WtiL8qd9?qyU(cicWiaK>`DfJ8^XL4FV9J~NV;kyuQ-2qj@@D?_ zQF`9Y9}iRB+~1{&jcYRvVWBk2g%Afbg|4+}K_xFV!S~OVDM9VeQ_c?QZ>rS$p5NNTz${$aD zc|OmXGiPSb%x)&=#y>-qPIdZcsB(1UpQ*~;==9H273jwQ7Iov*PXAlf&FIGeR<-CF zr~j?$7Ifn;RyR*``is>a=*B-wRbK1#&r;Rs#{V`|b)D1yHWfxU{_E8pMNa?qY7M&a z&sJ5_o&MP>jBflT>XtV-{Uz!ybmPB4oqV&?e}l4S7~S~at}16b{cl&*=*C~F%5QM` zOI0Ph@y}6R?{fO*s2+6Ve~0qk#>7T0>p&S1^ z<+2 z5p?5!x7u6d^uJpjMmPTVsE0r4^uI?PKsWvyWqs)M-ze)tqZ|JMSsyz63uJxh^#7OI zyV~jhFLfB*d4- zjsL&ZbDwki|68Ti8{PO9saqPH{zd98bmL#Fwl_Nci`7Hu#{WKb#aEsF_o-{pjsO3t z#;-a3|4+4`8-Inm^jl7Ug}MUW_?M_VTAltSY7M&azhBMXiVtI|3TG*Zu}ook>5G}A5y*O#$Ty= zo^kpsRUf+XFH_GPclwv9=g^J+!>af9PXCA10J`yiL_PBdr~f1BIdtQ{MLpf?^xvXR zq8tBm^~?#Uf4O=N-S}@+y?=E2Z&d^6#($gYd)Dc{O?gfl-T1520J>SQZ#$|ETizIsG410d(WPL#6dQ{dcHK(T#tl^8Cf=U#YUu zjsIh+>3OIBW2zP1`0rGUQqmpkmpj!h=*C~I%2S>GYE_AD{HxTBX-@wtbu+s0e_UsfQH~vqnEz_O; zPpb#fjem`5d7IO}Ms=VYf351c-s!JZUFgRD8Pz%4>Hmz1pd0@^DpKO~-=libjlWLy z-r)4tsR4B3U#t4w?)0x!o>HS5|GlbezSDoN3ZonUXI1Zeo&L|N0d(VEry4)t^siGb z=*GWZ1#WTr*Q-2q zf4?e1H~ufFimy8TUs6@*#=k`czUlODQF-Xbzg0Cn==5(@P3Xq|Wfl0A)Bk0ahi?2| zQ4QaA`oE%@(2c)Q1$H_8jVce___wKz-*Ni4sqN^-|5cU!kkkKF6+$=uucS;8Qu7IsKzd*e}`&8H~z1yv|l>?Usso+8~-;{+3%eGZ>S1%<8M-1 zPCETf>OpklZ&tmho&IJufNuN`sJTgF9M_iz)FO1_|E9|JI{n{NA#~$^P#w;8`X5x! zpd0^ARTpsjcd7<-1&>zw{?D^H%$jlV?=pquM|i}L0>{kxR) zdT0JFm4R;ZzoR@?I{n{K+33dqUFDtP^nX_c(2f5gm0jTUKcqtF#=l!#`Ua z-T3#aikVLTUR8x|{QFepTb%xVsv6z+f26A3>h%9eh0%@w33W%Y)Bl88gKqqts(O~w z->K@*jeozo<84m=ezgYO_@7i&*E{`BsxZ3o|5)8J+v)$Yx(nU-52%wRPX7UA-C%U% zKd5ebyVHMA-Gy%aPpOloPXANNn&Zs>iMr(-PXABTUFasiOI5zd>F-k2=*E9Y-Mq-@ zKcwzJH~ych`lU|)PgNtj@&8O^f5_?onF^sB|6x^M>GU5~jp)XIL}h>2=|7@E=*ItZ z75J#r|8tdxZv4Mcp}U;^U#LQKhazQF-Xb-y_#+r@u!Pq8tA)mABjJKcqb|;Or}%{?y=&=*FKG z^j_oirv(G(#-AQMFvICj4?c}<{9}UkB~JgCU?aNmj}6}VE~kHN@Md)5_XYzuIsM*X z9=h@Sf(PE`^!tKOqZ_|J82+Hs?+@0a8~-K2x(_-1mjoNojXxt;U+MH`1RK$fKQp*- znbV&c+>UPiS-~wIcKWk|5273YxM1T)oc?ja7Ifp!4sO52>CX;6gl_yf!KUR-e@?I! z-S~5Z+i!LHbAu0|8~-bUTW)juUlDu|-S{sJHdZ2|08mBChY<9}7~!H+uquL?elZv25@%NH5V3pH9G59pP@xLb6^>L^FHNhTqGWS7>_s>J*9H%N%ISY? z(6U_C(Z}@9Ki#8$uKc(qZ)jZo3Cl{d-u%Oi43D+9Eh8h@+EYJzZ-%^6NN0J5WX0Pv zGTe4#(pe&JZ`HlheM_?Y=8?YX{v@);dYj05?pZ@yiEY==`lE@A#puy6qdNLJW*@zr ze=hog9^t#cqW72iecZaCziV$2-hpq$yykbO*W_w@G~Q{^ksj(q=Ws@b{8tf~d+tFq z>I17rn$I6t6+bg|uM*i4&)9RV-@R^Vop_6$6?(SBw#7M5bc>0Of~Y<5QJ}rC8K}oZ zZ)5a09a?`hk+GP>^Euj|_;yYI&%dADGOwbo>(Lv0G!5sC&J&$$&UKc3R@t{c@wx77 z-o!J<`gpwExyKXFQq$JBqTzZHUsKQ0v-ME#<>9w(q?)7eN&M`Mw>W2)?z2aF72AX6 z+#a`{5Di$=SS#uL}>`E2S~F#$Tb%esw!rizCfy)2{QLBL4akZ_)P% zZmaK$L$~F{vd6C_UfgYr?nmAK|0`qeyngA?NVG-pEo^P<7^&pjsb%!#%VJ3{rfAi5Rj-ijWLv-NgpPn=`&?3Z`_e}GOBv?qLF%J^cW_Nj357@`*(2b@qJ4i|NPsAR*s)1X7p~ikKEvh`!O0bwDrLi zM%qWW4|Ci_E045aqA^2TAAXC5ZhN$!7uv4(`*6=r%~lNWJ)gc^vVG{7M7LD;WO#3U zTh3WD^qe298K0%kA;a%k9Y1m(UJCEoN9KHcr7M?j7-^3TzxPL;IU|ky@V&ioTYBO4 z?2F&$__M_MS)xaQ?&0OvkF=Lxm{*?(^*l**JvHZ$7gj%U&u_BN&-ywgE9Xc4*{xr= z?RqgPzchQ~#pwCaeH}mZT|wXl?`_`dtu(h=eo1?XQV9W(*x($ zjn01dE2HV#=&G5~yKud|(0ga3>(t9{9L{x|6K`GoQ4?=*J`sAco-z$r$K1JVZ<0LY zialqDTI_SU{i*#+8yOvwq3cQAEB(|$A6e!zl;I-d$2mUNY~yfGIii(yi{{ur+p`Eg zs^@;EA3xL1e%|=keo|rfiyreN`}vPYMm0892ix^}Blc-p^!pxqe9kXx@G~*}%qP+F zKwW<{k+B%Pmt*}LJcr}AH~#Z4vqi&w>Nnc{yqw2Vf2J8fs(L@ZkgXo>=pOyCAHU8? zd~VU78pQfako7GjCpm1=zMUVXPi%LF2wUUv(>tlB>O3!N1oJ~=TWh~CGy6e zn+>fHo#D}}p~p+quJ@yUDyW}m4cC_O#@cd@Omy|7d;ah6y z=1e%)8ymd~RUx{^2e+R1JRI$t_QrpDGT3|Jd;Y>l?`+%doUwZ5N1vrfpXk0^p8XCz ziaqu-=Vbfobc#Hkj?FRW@vFBY7L$K|vyu-IUw8f$OcW_Vs zdE0m{^GeU&_$L)3Kf`|^@k95*=*RHo8tFW@IFHuho`&h!HPWX-=d(v%$TR=Jd((Mt z9D1J~-MSaIhq~JE{l9Qty%#P_ySnnl&wb1}u6 zIPVsnR|NfZZs<8pUkyjf8X7%dgktZ?1rPT{`%C zebE>_AG9}mL`T=9`pkcReY^N=hvCQbrP(7FVqeFv_lB+_JTiY0UqSS|iq5x}J}X&{ zk>UEOpEKwqD0=L?^t~Or;?gr}xbf6SV)Q%4dmb6Ojf1`aSGQ5m?f)w??OgWV3*D}N z-C6xYN9IEAh2d5X&Z~d?r={ksqMw{c`{w*?)R}9p&S(3+mcDlDvsR)jyZ%J!{Jn{v zR-LUsBV`SKVs@_I;5z#gwwK@cre4VSzmVJuw-?TJubp3f;%$##hs0Z)S8Y8X^xvb! zjy3Z%BWh2)GBKaS#;+5i_LoOi^z7l>qS!N^=r@0&TYByzFxvWwD<|s7iyay3;b@US6~M{CfEByiYI0wx7#h7;Y70&clhk`qQ!G>-4ek zr+f78?~*$gx78*;)e~R>D;{A_1S*Wqx$@O>qp~r zofch3$IBa*BtB`_c(Z<+T&iP|@6z?nx3=E@puUIN`Xl{4jehx=W_2`WWTac3Z)RkS zu`b{5Y%BhE-MX&ewkssr6+Cu@WV=Gjs4C34L035WS!aD+`JT^e`?NuJXUuTF>)a1_ z8n6ES33>MGwzoRTDrnH#eovJiTi+JF?GMPeU!re38~*(pI>vlUr1nmIzMa*i@8ANm zmy=~b>N9d}!&dBgvmDQtdH@;WN zcj?uLU%ow?WL;aQds6sg-IE9G?|8?@J1y)Dti^=tiRw(x`&5n>mGjb zHobrM%FIc&ZnB@`I3weKpSeZ%O;?B>7eU#Z$<|YHOr=<_U90!$@e+Mp{C1i?F4o!a zDT=RiHjAEzx~=HBqRlb#W?uc}I^737mpt}dO19@xianQ7twpjI(&T8;eRxKW&@tBY za@35q{Hyi6(tYz;RXg>(dgq#<<9xQh#d?)?P>*D>{7kau+z?+!Z-t)cZo91{ImSnd z$(MJs#f~hUYt9vVE0XMB)y7{(UxQK98A8WYkz_n-BO*a zkBeyQBcJ`A{iNQ@zr90`@NlCyQ_dA``>z0!WDe+k)M(E!JwsCLtw^c|5!Z{60H?sK-N?dDpx@;+VR z7wx)lw|-Rj?R}qgMxOugQ#$n6e(rNaD;WE2adsW)wzPNfp4E{yf=K;N46>?{nVl~6qr`jPyeVx3x{kBA%2vi5LR)-9TO z6+H@KmYp2A+VX}S&a9Dt*YU$|@5s5@Ypx6W44Gt~ucGHweTGl5&+w`C89vQE!>8Lv z@tE^I!^isbTV|2&zu#UH4%lnLRk!MK-Y4hzWb2jp>pm=$pQ%>u!?E16&4JNJ#zxN^ z={+)MJeFE9`U*NSQ_kUf?WE^zkK=kB?Wb<#Q}+7pt@bDHQM=9^Jm>W)<^Fs1w(FUn zV$b~4K{J2&v-G+3+06fsd`i!7J%5s{d^y*7toPLE);}aylN9SR*%zr+-&6W5s=lYM zs^8h7uc}Y%)>qYMAJ$jZd%vNtsvmAU*VadlkL?%dSeZUwTd({4A^DkP{qiTe&%gfE z$km))UHO4)b%nP{Zj$wU+=|PzV#fIy&K0JD&eh}Kmes}3n)*(`ZHHaetN8;Z#ZL|zw0e+v|G8( zZlzCt_gFQ1oiWbeb-cMM>GQ2z*W{S>SkvW9KKP0-d=GWx@N-+w#{1=nNVV>i>s^|a zB6BZY&gUc5ua&z_w|)Pp*HQY&dW&31^&O36$v5+5t)9x~gU()!ly$ak(cfKn+m-cm z_{4oPcO}ji&F{vpXHk;%9l17ntV0RbmZqj2?cvY)daOpiu9;kYyvsfKQ;GX|uIp{R z(jH^4SI64d2(NuL@g-c_ByKS}Cb6x1;cH{((}U=pl&*i9oMYXV^L{GYy0dROQr|1N z?R8y}tm~X!^Sh35wi5kadk3G}^*$ZEp3%AQe=xpgtg>J3V%+vUPV{e<2lrD~&_{&Z zJ|g6u&)ak>cguZHvURugJjMEm%=WX*TXV*99>2f2YqVJf_H&g1X)(!qq-r!-I_8+X zJKb${$hlYFQ4W`-w@&v>_LRiOwnE!ye@@%e?jCBN(xL6s2HkV%_%-%lAezw|`8@MK za%D-iKCn`sXY~C}y7dWp7BR*;A(pZ7L_%Nnu6LY8o(T*OQI@kHTxsK~`OR~o;`dm@hOtHr;)gHGr8Ml#p<@D-SqGO_e|EA16xAn={ zx)t4Lk9A#wJszuIt~h#MN1v$ZekNOb{-;VQWrgpt3gl<9)opM4@yB&5b05=lX_BnH)2%j{KVz&d_6oD@YkDr7ZM5Ut9mz8C z+}8K_srCq@S(&olNVg`-Q9s5$(#Kj?e_r?JZW(8vbzIhXe(R*HkT0>H=w{f*d*+LL zyvILz)6Y_p?R&B46P0s$+NSr2Io{2hU(ZR8Jtw12()656wdZ7-Jtx!cV_A>DNTceU z8-st>EpFLua?f>^>Uhtm^!(BDA@NyG$Bc8VVazeBw=v0D^{C#uopLXeY(24A&+5x$ zwx?Q4Tl9SE|F+)0KW;hK?b0nq@85NEHIFY6ZHAhSBn8gM*q z8$3$!ebB9JWeur+|Ax#oxAnOF4iIOqxqml%Q_l^LJvWl=m00xt{o8VlNIQ>vcHM5W zT-n|7RM{R+>BEb0Z*KO{Avu>O$;iZSySBXHK4aH?Fn6iuiD;trs*Z8q6+ZBk?&rDQ z6^>@5XU^oNC;B`o$BvvOnuKVviDlgo;b+)2s zsmIc@G}+R#G{v5!sg|C}=RQ}XGgEJio`-IG9wymOkUW;2fyrl`fjU<|`ElD%e&mX8 z-$f4pudm?>DZtuTb&dIZR~NJ=c-Zzne4Py^N1^e!EP!p6HtrQM=yu_-_{J|D7@T zI~%%{M1ONP+Q?Y7SpS{<9J$W9p8;ZfDjKcqHk|=_GGxXohPcP@8~Z~|Mganz9-%5oLi^IHs0c#nYz#C_uq5QFDrJW z=ufzgzmYk=taItrh1lvu-!6-d z)o@;Ol>PIs9V4GDoyY$0|7+~xStxc@jgHvRb8q}PC*ERm_5TVPe*F;tA9JEvy2V6q z^mU&75}(`8wZ-_J$6MmpMd#Ye%X7P&XU+@vUtRRJNB`SP{9g)0|IFsb{v)}dGGNa#^(yNi^s&#bUp+{ddE8c$gqr>!Mxb?=x|2SjrCd{WB z_k4Wl2uJODZy-bP50sa-U4wU-Z?OuUR`|qMEsfg{PsosJTXtL zb^XE5#LQX!eE;G&{!FEhas5|#iC5GyZ~Xi>S);R`{d{;X)n2S#nL7HoyAb0!x{-Nt zw`J)5jh|QXmiYUZi!0LjeRr;FAg;tJ7uHMnx@sYs$M?TvqS6m8dd z&(`jR@A=?kEjIrzzKuWrXnpy=jo;iKy^y=$_%(*Pqa6MoR-es=_YPhAU3>}=e}``N z+6y1&k@v#+de3$L>T^i^HpXAIM`LlGSM{tu_it9{JKw=)Z{4@(GZSb1bBWXy61}n6 z*b`qDbp6Cx#y))3X!;+E8NBk*_QY%53%|YRH%jN1bs@)AzX5x+v*^Ol(tqaooL^i2 z%&eDwzn|YdjydxTm+M@WMXwI}JbdvoA%-j>nUf3YKD?T+>y?WOGP zg?l$?qPzI$97}u`9QDTU5xxG`$7%HYX+!62Y|KZVOYxP5n|1#>k;7e^%oq;m9sG@D z{XL?8?e})hmA}6md)9Yv>RDm_;wjM^7xgH;7;oUztz76gG@7^Joy%W~$F^Pn9eQ*e z&h@Q~cdyoeXQ$r}lWzZ2@)-O5Fk|ia!+5Pl^1g!ec}tAx&&WUZ-WmPd8VA2;K0!XBmHjvf;c)KVv(bJA7d`OKmz48ZaQ?36$;fY@GJjwH!rv8kVXgwE|N3)~7jl-4zOzeLJNLJQImgrd zuIr5EodeExqrWGvR&aaF{_pYbtl0LR?MgA4NWDiczAwv+r1{H{m)rZY2EV;3@jlg` z!O2^!?eBo;v!BOap5PW0VP`rS~;_Pe1{&iZaB-C}gbrTb&%=ioO%CGKbRZ8_Q-{{|=hHsCrSrx+ z<7c&F?#bJv-PVPBH_nBA^UP=Lx9DH|d2s|Tj=;qcxHtkAN8sWJTpWRmBXDs9E{?#( z5x6)47f0aVV+7=XipaCEkbDp43Xwe`ZSohF@*fqfJS$b0YE7}mi2V}z{SvFtQbJ{2 zV@(uJw2H0EgqK;ftx3X3R;l$`;cKnA)@0#itIT?x@O9RWR=zObDz~l_UTH0|3WNn# zg>{wiD(hxzs&J}RXCY)wfS=R}#v+l6&wfrJkB9mO7mES)rzkgPK-)QB# z9us+7WS>ZmE7!_#-RyaVt5Rf-^$J&;b*b1cb=~55mFTaQ-(T&j@=O*^cHQN9o$z(8 zuqR)b?^@%zQh24S&Ql;PaIN!PCA`X2@0lu`>e}eJT6ndq!81)b&9%jIo6B$A=E@S8 z^GJE@HWtTP_i|NRo(0Bv~XyBvm9$Bwb{T$XF4th)={Xa*0TWNTx`Z$T*Q~ksOg+ zkynUZDl%T=l_IYa35ZM(d9{cV35rYG6pBn0d85eHBG-sa6S-F8I*}rg=^}3ud9%n2k(nZI5qYafvB)fu zw~1UYGFzlX=$`bNVmwZMSdgFBXUgSw<5n2c}C>8 z$nQn|Akr&xLgbGk&x)KBIVJKZkw1&{iSMdYs{&xxEC`CpO0i42IG5qVzZ?;=)` z9RDJ2kt7k1NU}(ZNUBJhNV>=vk+C9P5ub=(+k#Qo~A~_BKab(7r9boib#RT z8$_-WDHNG1@=Y@;@RQMK+0iLF9`f4I-OG?icxz$QF^UB3~Byib$i#Hj%H2 zd`)D#$PSUOi+n?*Nu*ii0g-QtJSehL$d5%1h#VAoO5`UZT_T4> zek$@ak;5WKM1C&v3z3M(QITJY{7U3$k#3P+i~L5UN935uZ$*A5@{GuFk>88_L8MpY zgvcL7o)tMMa!TY+B7YX?6X_TEi^yL^o)bAO^1mW~6B!UWBl5h+-$g8s9RDJ2kt7k1 zNU}(ZNUBJhNV>=vk+C9P5ub=(+k#Qo~A~_BKab(7r9boib#RT8$_-WDHNG1 z@+uNCTcHVFg5ZfixS*1N5beeyNJ#V+Gt>Du+!6w!B}pN1~C@sAhk z{K@DuVTpVFwl|7h$LapAq`k%HMb?-#E5%-9EqFpcW)uE#-8x}0_G0YC*h{gOVlTyB zhP@1X8TN83yK%m3P=)o?j+=#*#8nbkNn90i)x?E~3lkS6u8z2R;u?r+Ag+P9M&g=? zYay z{9X9l(X%ZxA0lj5gzbv3T|L-)u=il^#omj(7keM$HNbdzTxMQ)TxMQ)TxMQ)U1on~ zyUhL!5EmdWK->|D+wHOBUg)bG_I#GOy`py$*DY~fqKC*2VGog?hdmE_9`-`)h1d(R z7tya``c+C?DRHI5l@V7?Tm^9z#8nViNn90i)x=d3S4~_Pdl-8ddmZ*V>~+}dsoOx^ zM&cTYYb36TxEA7CiEAaUmADS<9oRdtcaq;leuTIPaS`Hru=il^!QM-LANd2s4G=d# zoX5>PaWhZc%o8{B#LYY*ExDfUb_7L_w?0MMpuoqIdh`PnZ6%$uXTq$v7#FZ0Q zPFy*071%4VS75Iszl!{7;;M>b!U$?qaRLR^Hn2ys2wd$9Ll@5SDWy%&2QbqA>HNn-yevHz3U|4Hos zB=$dX0pbG0g|LUPhp^{i&%>UFy^y*^)Ga2in7Cr%N{K5YuAI1X;>wAuz+Qp90(&L) zO6--`tEgK|-7s-s;=;t$5m!%K191(+H4xW`y%BpO_9pUM$ZsXCmAF>oIJj@Rd^TWgZ@Gw6-%n#xM z#07{85tm0?A#sJo6%toOTrqK_#FY|PN?aLn<-}DGS3z6_ah1eX5m!xIHF4F%g|UaR zhq2dTuftx4y&ii#_Im6MwAV;`O~f@3*F;|X3%?Agg?UIdcOya*8&A}&N+ z9&v@l6%kiNToG}_#FY|PMqC+jWyF;eS3z7Qah1eX5?4iBHF06$!o-D%t0S(SxCY`H zh-)COG5OQ?gz_w_G1+yGULWsspLyyHwr_KObn3dbu2+0oufGnu|EoS4UoG~7?#Z@(+&$}F-Ja-Mw7-M)I%uzh z_ByHGMg0hR4|*?oz2x;u>buzOO>cz9CGcz9CG_Ij~_Uu&7PpO=r zhzk)HA})`(LgI>uD173KdY(lXA8Mc ztRlXO_$uP7u~%cS#vaBV#vaCAM?dQ6M+0#U#5EAtNL&+fEyT4D*Fsz?aUH~U64yyw zCvjcayRdg*k6@2rk6`biZZCEFi0dP+kGKKiJZWZsdeh8&@TQsh;7v30Asc%(_H66{ z>;dcn?4dL>Px7c+NL(Rtg~SyRS4>&a`G$4uOzOLxJu%xuvcNP z!d{KN8hbVNFm>ywTTfg)arMMC5Z6dt6LC$%H4)c>y#;#<_Ez#c$nPYslekXey0CX) z@4_Cz9>E^L-b3A9>h=-WM_eCq1H^gK+5hS6|8(|$I{P1cHuh}n0qg4eiRc|Ok6Q>rNosHS590xaplBS5LZcD6>(L>RS{QBT$s2z;_8U2 zBd#8MJ@$I+4cHs7H(+nX-iW;sdlT)o&|WKXt;Dqw*Fjt-ab3i95!Xdrgt#8!dWq{L zu9vtz?0wk#un%A#z&?Q8GluKJ7_JLrxGsz_`zd>jnJ)q20>lM~3lWz`Tp@9V#1#@( zL|id(rNosIS4v#j7;~L38)Mc*Wn;{`s2qDa_HyhM*ekGCV6VhpiM#^5kZ@}Jwy#agU7_)9`9AnmPjbqHZt&#Sc@HgRa!rz3y zg}N=&ZJ}-}_Ezkz*gLRyVDG@*iMY+=bx+pijT3)j0|wNCr@xts5O+~$TyI&J%t+ny4xv`qebSI)gZxBcI}^;g0o z>g{tkJn{!yH_xey#{Tv3Q+C{wyG*^OHuT&2hDZJ`oX7L=^d$5Ae4guyTT|Yt?JL*$ zgdMC~J1n!E^IY58vc-Pd3YET6I6mpj7nMy@e|*w&_vm(tWgMo6y;R0wwyV$xS0`H1L~lP;U`QDK4fXO(cCYv$vtZBBi>PB<-Td)s}&k|g!% zjl!8pIjg@UY_}G_U61Eh*YmT!D*6%E)<<^=Gv)c{L&EW{H@;opXBAoM?LV+}^St}C zd;1eli9RoBRngCdo^bUoSbTQyw`Pkc%q?pPr2XG@g>`Te0GNPL zI*rsRCa>5sdBxP6Te^<%f$^RtpVmDH)EP7if@snZwTpVaB2P9t@~)Cp53Oq~Jhc)VtQdA(+SHBiUv zHS?^6It|ompiTpIvb|=W2B;IFP78HH)ajs33w2tk(?XpH@p)czKFaf&`B3OJ^C3cB zguDoOMYLZ``=zwsL%mYkuTA>Ktde(IRu6T0sMAB8GTJSp-E!KkpnfIwtEk^g{i=V| z|MaYPzsItAsozWeUh41T{I<_!wyT=DVd~aV*W)thg*xgMdd+5qJQ|!JgcK#9rYT?%k!D} z*hssL#5EFEOutL%cNzU|CBKY*7g48`I<3@crA|3@DyUOQoet_$M#r1{4)Qz5uVVYE z*uHAEFG7Ab?MKLukRKtxhqy3x!qlmwP7irKWuA}_{>I_h4 zfI1$xIS(|^eiQAt(7wmb`M}Njz-`V4t+d}k`<=8Opk62Kx6pooIsxhgsMAHA2z7d> z6QWKJbwcEa$Pbadd1}R(eGm7iis;G&gzQ;*-w<8tbhQ>UCd6~u@997leRBl=lEUIlp-5$zY#el_)q zX+MwltEp2>ooecYi7%!7Qra)0{V;i9^1|fRkylP$Ie8W2)sa_6ULAS++}nS0=|^Rq zN&lMGYq;56+FQfmB)N7<(W3>O&siRIkby}%YPn`9YR`4RFXydLs;$m=Dqi@YxK zBINaw*Gpb+v^}=Bm+kFidp$|!e9*`CcG7Q866b*=&I3v2JTO2V&n2wyE-}YJfI8kw z%yAH*PJlWA>IA40B0l>Pa~xz}a@=0u2QD$kYlyrMc_H%h$P1AdA}^1;Jo56$%OkJw z5_9|((eGmVT}-`V`W?8$9KXfXDW*;_bxNsIMxAo%lvAgiI(gJ7r%pL_%BfR9ol5Fd zQKy1BRn(~V<@~heYYPLVj_E(Z$hrbSg{XhI>zgAMOl6qnC!t^^#yJ6zO#5K_G zM*7`EzZ=MJqTlt@X`oI6bsDJCNPG+ZY@wg6^s|w?M)DfT>!AHk+V7(MR_b-pek<*_ zQm2(Vt<;H7r-wSd)ajs3FLgS|?;yW}{66~KN52Q?cPIIt3^T7i8D?I4Gt9j1q+TcW zI;q!1UN(8zACHIgjED1#$DC)%GR*N>o?*^26&ajo z$gjvS=NWH?IbH+Q2~a0Mol5FdQKy7Y&rb@HfF zNSz|;M5t3l9dD+YpAqUrs1u=15AnrpZ!z0j%J%k<*F#qCErVaC+&68UKi~}ut%`>VDF{9 zKH3|gy%6mU&|WF~Jw&@9+6~ce5%FEb6%kiNToG|)#MKd3MqC+jWyE>1%)ItynR%U^ zW#)Ay`Po@!UN=yuk~)>tsiaPTIw9)hQ725DJnA%2Crq6%b;8tXAijsV2I3lsYap&K z#q9UOEOWdUW|`x?D9ar0eJN(Y_obNq-j~8Ul)Pf{ipeV_Z-Bf3@&?HBq?-21$SWhS zoIFn|^DLElmTKDbl2<`q1$mX^dCBvV=OwR-@vLS%!;EK$dSS-1D9fBDLevRSCq$h( z>eN%GfjULhX`oIib&9A{M4ck)G*YLDIxW;GqfQHT%BfREoigf_QKywU9n|ThP9=3Z zsZ&XvO6pWnr;<8d)QM21hdNc%>7h;)`Bmgsk>AVy=w*NOu|KNGAHY9=-!sn4t7__1 zQ?HtO-f`wQ${uHqqrf7F!^Ef!{mp?nRy%i;?BEOvWy2$S$ zzl;0|wzq=qtz>&65Ca;>jYVr!R&GB7Czl-U2J@ty|cOcswU-i_fr%pX}N~u#uopS0l zQKy_bdDLm5P7`&Ss8d0mO6pWmr-eFI)M+8Vh5VN2II#WIY=4;T?<7A=`<>)>lHW;w z7jbpesiRIkb-KvwBCm_Q2zd?UHIUaxUWB{|c@grO*xnYlx0UVfqh2f9TTj3HsMANC zKI(K(r;|Ee)bXa9hw}4n>xMJ$tFLW{A}|3*#17Y ze}L@|knhRiJ|>6zm>e^&1JnypFF?HzdD-M;lNTT_L|%xz5P5mzg~$t$mq%V6d3ogJ zkylLK0OM3lTrqLQ#1-an+~k*r<^*a)G4D*Id!V2 zQ%;=#b*iXSMV%_@R8XgqI#txEqfQld@~BfsojU5&QKz2xYR0XaaSJnU_2ku)S5IC8 zd3EH~kylS%19=VPHIUaxUITdzeN%Gi#lD@>7q`AIz80srA{w(da2V$onGqnQm2-$#BQ`QBXCYq_k~$R8j-K>h&v1LO~oAIfFDmdkoA*BqaoG2EBnFT`K; z55GB|c*by_Fvgruiis~KzLfX?^-6Qi@evrq^`HCz`Gv&g5m!iDA#sJom9gFBYl{Z^~B zN80mS4_i;#?Hj+BtFfW;p(TzKgElX9|K9eG#~*MfJ!_9UdeHq!(f#tKp#s}J3Huf9*|t6zJup}+{<xu3IH?;iIjU2g;RHoEgf z_sg4oX4%~0ey`0&_ebrxopxN7yfsI+pCxa*F-%S}{mD*RXUAWf^hKM2r0q6?N#D2g zClVJ*+H2ddNIGaUkGLu17uxw*^7a=~zXUFZOW+E)60U}|a0A=~x59032W*CIupRD) z2Vpln2K(V@nCvnAO}CjQZ_qIMc=Q1J1oWWC9G@YNIX#D2uqv#etZW?+K{+ZZk!Fg~#aW}$p;+NrH4r}0QxZY-( zRgb;_eWRV9W;LXkaoLh$#$_vU+h8-?3ESZwcn}_fM`1TS4o}!jvj))5pj)YCTwJMU zTr*(~oCqhu0yx#C-?}FCPxkR%lsfj$dLB&2J|p!twmy^iS+E2yfD3J=SrzbR`m+?h zGF6X{%r9G)^Cj(7(cUWCo@Ld*_2ku~Z$RH@*Ol?6-d6nE;4Ziu?t%N@L7Qn-7y2Re z!_*q4%+U{pioxd9q(p&HhhLGy5SO=D_iA5}XY4;Z!&cPKPt$JUAaN zflJ{ExYDNIx-0EEd;is-htuZT`fB3V!u4=7+zOlFPS^(9;eL1!9)~C38R$wk9@+$7uwsk5Pea4rL8X}ZW&w-SHe|rHLQir@E|+^&p_W8 zjx#t37Qp#%CENga*i5q?ge_ytaodK!9qxhq;C^@r9)ZW<33vv&#xmY86Hb5=;bfQ( z3*b~Z3zoq7Z~uxz;qR;S}^>?vX zufP4)Z143pOTA{jJ=d$(+ga8;;>)~d-8~=uMz3CX%Y62l_4XpKS#MW(&3bzYaW{MS zN`JDfrRbI3V|M>;@w)qTewA0*yu({0%(7MzSM9yY)>on5<^7ng*Pw^Jo9w(b-f!8g z^X|8~&ih-N^iYn{wZ&`J|BYU~{`Xtky?Wj6x0<|qy`N<@ z6aS!BuluvCo#-uIv;Kd`tJnW>f92Kde!0K$>h*q>)lOW8SFihJ9fZEutJnX2tJAC3 z{eJ6!_iE{v-|F&~**xrBZZqP&*Y598@}BlK+j=*8kGIo~d&c_*o4wvKf6;YLdMDfL z^UfA#S^dO6=Ur;+r_l$zpRx5b=$6micX)jIzQb>&`ON)Bx=+tbzvcDm`;9Eiho0g4 zhTTrKPv1XeSvlA*_38TvxxYmZ_{{x8&}Z%^LOydpafMIcPh?q>iOcip`-&_pAAO3? z++P&>eq{G^D)wu9$8CKYdXX>fueyITe6O`x?0cIq%bJCMwr`28m!OyW?zZFR`o3n{ z=V34N?X~s!=r{U~+i~T-G0*Axi+oqwtniiDyxF%>DD#^5O5gpqz6|{q-}mjfD&Jw7 zcli2kR{OF~>%3LO-Q~N=)@#tizITc4x7PTU+pP1gv$@XqO*?KqarM3fw!Q&6jFw5G8f4lEfw!Q%@*Hbn-BS(wb|-R`J2vf zBmQBZvh{ZK4&ODR`>nmcc{V$JAGCSE_bEH>AaPy3`)&OY`e9$29T)LMZ2M8{Py7C6 z>)q%*zQBO4|BP?C&0gPog;~}K{3m_pKKK-RpHJTh`>p4E=KgoUr|*BWtTXs6zqt=~ z`OWpyL?%%Aa!2`@i*IgEqa~* zfUU1ZU+3?)^XmP%@*n5?)<*v{n+^VQVV1R-xGnw~Ti=S_=x?y&w)=P6Z1Vrq_BZ2y z(BE(CJJDPGewVKQkbkl;%i3+*W!}SfxCb7DhhR5622a6$cp4^OVy^e;&9XTn*q1kQ&G;6k_zE{CgN zjm+#oT6x;J_1Nz2{5?kMdzQtyiwH3Y5t|#Yj^zCea zGjTiNZrBF*z1HCEJ%)@5%7WfeMHsagiL3jurgU8`%cn12i%s6DiNjB50E6^vyX>dCJ z8L&9Z^luLSd2lgYLR=;K3iLbBSE5%_rxyEKxEXGRJ76>11$V&icod$3{m_-eJb;-n$7Y%pM4yNr$}#g~ z684#JAzTSJz^!l_+zH!YJKSee?z3{tee-_w13Bitxhu!qHy_T?_sv<>5&V%HbN~Ew zj`_T*C&zqV^-PYrU+&E@pI4nA{$$Se_I+?)j=67sF2{UMHISq4m;IKNYwnXhx%xgi z%Sz7G<0I?LTz$WsWu>EgbM<|*-^$1}_odmn=DzgOT=Tiqc;W)N=5whD=)qj`xl}0E zd@glGuD&mo`zri-x#sh!eDo=~=03GB*L*H@O|H2=orb?C*L*%T9eqZwxlb+5)%S;T zUxj^kuK9eb1iduZ+%L{SpPOs$7w4gu<(m7&8*|O)P35`f^QJ|)`u;G>T1;F;uD(yq zvX-FVoNMkED|5}~Pq*Zn`^4q=t8(>yqO3d7@5t5ni+-y*SKlYfdNbGDABJ=F{b821 znz%K&=033&y)IYZC;F{*x#s?`K3Cr#$~rUG+!t;lt|3?77s`4QeM_#s@9x#oVOjkt$%&HY9@dPlDL{A|Ci zXITf~5qK0HgU6xo73O#>fOFtdxC++7X1EWYfSH$?I{9!OTn2042DlCGfIHzXxDOtM zr{NixKHjwFgA?FHI0?>!%U})M05`#1a5vl!55jJE4EDp*@C?j+rRi4=oDB2fbT|_( zgPUL*JP41$<1pt{rv6O01g?g)a5LNrx51ro7i@#=@E|+{(*vfxiEtX64i~^>a6Q}# zx51ro7i@#=@DMx&lPAzFoCK%BX|M#&f%D)(xEQX0D`72M3pc<`a1T5V&%n%AvwvX$ zTnKC62Dk$@!`-kA?t}Z`5qK0HhbLgVGVM=-GvPwG60V0E;5N7e?t;7F9=H!4f=A#{ zcmke+XP_%+`jrlSFcap$iEt7ufK%a2I184*`EUVT2$#ZTa5-EBYv5|Q9&Uh};11Xf zcf&T=4)?=@@DMx(kHgdO4D?Mjov?9=z}?MJe&>}!&Pt-+yQsPHrNf% zz|6}`dlTR^I3F&7E8t343pc^duoIWE{03s zO1Ktog}dN>co25OW3V5dhQ8ODeq_Rla1xvfr@<092QGjM;bOQ1u7E3HEnEvX!>w>9 z+y(c*eeei83QxdO&~=5`o@6*4PJsEa0M3N7;C#3ME``hBDp&*8!wqmV+zR)=3Jq^ zJe&Xv;4D}I=fH(8XTdpe9$Wwy!eww3tbyC$K6nDAU&(xflVLtAflFWw+zfZZHh2W~ z!^|nBem*RLOJFT*h6iCk%q$=umcS*j25yGC;URb$`rcsbOoWqQJ}iJ!;WRi0&W8)& zLbw<%fvaE*Tn#tD&2TH+26w<_xD)PzyWv522p)k)VK+Pm&p_8zX8V0G6HbNG;Y>IS zmcTi19$W=$;A&V4*TVI11Kb2R!>#ZL%qcYe91j=68n_zP!nLp&?u5JGZrBFf;U0Jb z_QT|Suno4u zZg>Kog8lF`JOf>CG~Supgd=XQ1m^_6tmhK9~th;2gLBE`*EW z61W=H!nJTS+zOlFPS^(9;U2gT_QTUK`8wu3^uft69~Qu=umsM5^Wc2A6fT3y;R?73 zZiZXoHn;;e!<}#!?1tluO#dgqS+E2ygp1)4xD+mf%i(HR3)jMJa0hILJK-+48@9oA zxCico`{60r4_(ulPcR+&U?!XhC&L0b70!Y4;C#3QE`v32HLQhe;a0c}?tr^t8*GPr z;6At?9)~C3Dd>BX+1^Z;1Lweba3Nd_m%-(56|9A8;d;0MZi1WPR=5rBfX#3x+y!^T zHrNjLz? z{qP_>1dqU@up1tO$KeTh3iiX(uwbScm#J_XoDOHgS+E4of%D*exBxDMi{TQu6fT21 zU^CnacfsB82s{eA;W2m|o`9!dKRgZ3z)5d0+no;!;8Zvb&Vlpbe7FQIhb!PpxC++5 z)vy+>g*#z8+ynQ){qP_>1pDC`=z6Q!o=lhn$HNJ5BAf&#!#QvsoDUbkg>W%k0&C$~ zxDD=r&9Du&!#!{xJPuF5Q_xk+aSPL-4`#v~I37-b)8R}w3zon+a2}iw7r=$E2Cjy+ za4lR9H^5DBGi-x<;6At?9)ySB33v+j!_&|=i~S9A;3PO1=ELc5CY%LJ;2by)E{7}N zO1KKvz}2u8u7&I22Dk}shFjq_xC1uBop2Z24Nt=}F#T<29LB>5a3Y)pC&PSL0H?xf za5|g`m%|lsC0qq-;A&V4*TS7}7u*foU_0CcyWuf-3iiX(@C)xDYOeOW;zt46cT2;d;0e?t<-b4?GAD!K1Jno`9!d&TO-N1#k{r3|GNvB_?h< zoCD{W%k2A9K?a22e9tKkN?32uWs;BMFk_rrtmDC~x(U_W%-zVTVvPqeZJ$?Ov^8F_TKB{cXswU=Lnu3YbPz29}~`k?D0u4i1& zdS2SjzU#TJ=eu6w+Ht+y^$OR%>(#E;xSn*q)^+51o$JK)CfA!?XRf!oo_1Zh-s5_& z>)Q1J*N0snaXsrYKR(xUT+ekq=Gt<-(DfqMj_akam%Co!dZlaM^=j9F>j~FuT}Q6h zyWZe>lk3f{x46z+7p`}?-s5_&>)Q1J*RAVAt`ECD;(EsQ?B}QTImh*wYs;(C+o&91k*o_1Zko^d_r1!+HyyI$mav1`xuGS@3zuW}u@o^U)Ed7x}NXaay{;Pf$N2? zm%8>`uW-H6b>Mo!^%~dfTqmwKx!&x0o9peacet)x?{>Z4b?y3y>lxQ`E>FjKuIu@( z$6ed57rI{LdZ}yA^-9;PTnDZvTu-@P>pF40-t`98sp~DSx4YiqdfIj2dY9|U^$$GSUE8h~xnAsgscX;mO4qAg2d*bvPq|*}I&!_i z^+wmJ>n*M`*E?MAbUp35a=qL29@n+&1FjFbKJ41~?sWWTxt{HMj_diZ$6SxQwp}lF zy~Oo0*UMe|u2;LBbUo!dalPL4X4k3fZLYVw-r;(u>&o?R*ZW=9t`E6B?0VMs`2E}U zeAi>H7r0*N+Ht+q^$OQ3T?eiwT(5N)Q1J z*N0pmc5PhYe^=LYT+ekq=Gt;S?%H;}$n|2^OI>@eSGZp3dbR7o^`z@5*NN-(t~a|* zU2k)}-SxEV!u4*~dtC2#UAsQ$`jG1x*T(ny{oC~%*YjPExgK|IyLMbJb-lv%O4qAh z2d*bwPq~g(uo&*V|neu6McK>w2H-1Fl=wM_kXi?th;jx9hpC=exFC zkGu9sc>O+iAOA<~ne_-gV}B+VvjSwd(_}54t|&de)U`{_|Zg za=qB~QrDjAm9AI0_Fb=cow=TNy~p)l*N0pmc0KDQY5V)G=er(rZMk0Lda-NI^)lB} zt~a~h?s}K&%JpH_^Iw{_d$H>!u9v%B;d-U()vg2AYg|vdUgtV-J?(n0>w~Tjxt{&~ zY5OhLOI@#W?Yo|Ey~g!g*OBY>t~a>e=z5Fm%=He}J6#v9ce$=y?{>Y<^?ui_>w~Tj zxt?)tT$PUJEZ1{f&viZDwe5O=>&32@xb|ExbG^#7?|Q=Z8rN%GN3Peo-spOh>n*M` z*V|n0bUp35aJ}309@l$aA8_5eKJ5C4>sc@J+q3IAuIIWQb8We{T`zFG-1UU(#PufE znd@z?_qaaj+IV@|{@Jc=*Na_yu9vx9<$A*P8rPBQ4X!u3-syU;>qD;R=4rbZx^`SI zcfG>(lwZ6N_qc1v^$OR4>$R>oy58hEbG^;=wClq4 z9@l$aA8_5eKH_@Db^ix^{aw#-J=gWPYuoi=*GpV4bG_WP?|QZCN!L@Z6W8lqZ+4x! z-tKyb>s_uZ*ZW-WcYVNh>w5N~|6N_La6RREv+Kh39@l$aA8_5eKInSRE7H6dxnAjd zt?ShFF4wK=*;o7ixL)Bpa6RREt?Lc0GuPW(PrEK$?{>Y%^?uj2>jSP2xjyXLcxBq3 zvs}+{J=gV^Ys>YxYuoiA*Na^*b?v!c;d-U()vg2Aldh*+C$87K-t0Pcz0LJ@*VC>G z*SlTsalPMl?fRhWL#}6B8$X!V;cVA)T+eqs=6c++P<0yKY_2 z`k}Pl^Iea-c3iJ=J>`0%>+P=hx<2B1?!a$fu9vwET(5JTx}J8u$Mpf%hh5LOHh$P| zC$9Uh$6SxQwp}l9z0ma{*UMZlcfG=O;CjOK8rPGqr(Caf9l2iTI&r<;b>@1T>z%Hr zUDvJ;x<2Ikuv7k%>jkctyI$!!a6RFAjq6F*Q?A##j$E&Eow#1_ zdV}lTuJ^d!>-vD}*7af6M_kXiHeT(2PuG3dmg{lXwrkJz3fC)LuX63XUhO(?J>fcX zz0P&wdcErnuD841<+^gc+w~sTdtD!PeZ=*QYvY6;pX)K#w(AA17rS2K+Ht+qwdZ=9 z>+P!;ddl@$*OBXWt`pbm zU2kx`(e+N()2<8GyIfbUce_5|`k?E>u8+7L`_XiqE!X3&7r9>Idb#UK*Hf<7xlUYf zbiK*-7T4Qd?{K}-^|b54^)A)o#RxZdk}pX>duYu5){x2_MmKIGcICLQkut{1vq z>3Wsx!1aXdHLfRJPq|*}I&!_vb>e!x>kY0qy58ivaJ|cQ<+^o!(DfnLhg~0WJ>z=r zYtwO^?|RI&<$B!p64#FFrLI@G_Fb=b9k`xwz0P&wdXwwTu2a`rTxYJgx!&%2hwJ^W zYu5){x2_MmKIHna>m#mbTpO=T$A6aVzUxJ<7rS2K+Ht+gweNbh>%jGd>ou+?T~E1Q z>pFFvx!&e_yX(UBF4vXoeXd*A2VEa>ec1Kv*Qet<=Gt<-(Df46j_akaJ=e=zFL%Ah z^`z@5*K1uzuGhIvTxYJgx!&%&aJ|cQ<$Aa4gRT#`KJ2=GG9B01uIIR(>w3QHG1r#s zao4u%1+EvmUgUbQ>m{xo*GpY{u9vx9?s|jkjjmJI+guy>%#Re*OlwtuJ^b; z;(Erl@dm&Bx}NWP%(dlu+_mj`fosq8GS@3zuX63XUhO(?9l1_iuQzRl5MCGJ6=J?# z^l0dD;b(uaVcu7Uo16~9?>IdAB(APTw8wcX}yw7`E=c z$|z%BI#3Svp+iyH(?T>1=MNfTL|U5nEApmzm3im=a3d`6mZCIEZRyV{U6bmPb(;B$ zUeyS?Xqd0io+yoITKZO{Ez*p%gO^+Hi(lOckcX@NJwD@DWbc8!RXModX7yaiq@ z8ivnlM5HugO&T7x^BSV`m)^r`iiY9UCmJDA8r!0m;dStG(JZR&f++rJ&_*=UJJ^g4%8L-ap3i# z0vbVMksk-%6sn*Fv=sSq;Ds;T?fss}_ZhDRWl#s|ihQ5(`cMIlps~pJ8E*WW6~0D3RTbos-ZQs5&d3R&h>z^&)!3OqO?LyycTpI zN@Fv;4%8K;u|3f|JpcWV3OQ*X8d&-kr6attC>{C4(swF7!kd|QTHZpm47307sIW5c zetB#2eox-kyhr3Uz9jbUk+(0JhcCV3QK4=06j8_0&nWGg_gr~>QF_)GnD+{KBfPOF z9r?u4waCzc*6EiGLros!NhjeAvD z`rK>udV_RjY22&Y(!W%?Cf!;Z_bNOl9?^?mt5+T(f5sN2+rhqQ9^(Ert@oGewdl1i zjr*60(%N@OdzKEB=AvP^`gIMX)a%oGh3Lrc-2)r(OBzv#Qg1|WV(D)yEk(od*P1U< z>P_kWnkdaT6V1a$BPx0edP~u*w%wKW9{T~Um1r2Qczwet&AevBr$uSzt&R9PjR$fkOhf9?)oSXDH?`9(0q~7d{a@HZ)UxJQ?DXjkghEKn%~j- ziH4#32CW~xHN8)ZeEmf8@Dh#CrSp7id!lr_`=WXH38hWZFnmz+MM`_s5-r2yep8Pn z*88A(8EMDTCn3cL^ zc&r`An{=-grF3634;W$D?!r{fR}!z~&SDfKqc)_U==E}XMV_e6edqIrmqYfaHG zocC7Up6MMxZR^FA%g8+u#o{keL&G^WqIC-UPJ&BJGvHbukmVa*aL?ZE-m zwqAUk%`xiqf98tru4#Bke*xOaDl- zP`QQDW4rB75^i-zIj8XGBX zZ3Ats_X738m+jJh(L9`#*Axvy@9jEX(zc~jr5Rq&ypPJuMYVZMc;sumjVNt*YiZp3#(BHF+7qSi?u+Iju0f0R zKy<6!L)(_d)##A+%)3QiA8%k@755%*VqScPnBvXM`&;!Ecq{Y1;t#a>kd(r0Vt4r$N4ct7gn9g5P{29{o}5hK!xdGX#o#haNI z@1YC4r6|p^vUC)Wh;(b7y-)e_-Er)TeDCqv=DjEGGhSEZw;@ZHO8caTqIA3iOXKm5 zNGImSVv=<)ivYi9IR z(L$8&0W0&KFK>;v5&5mt(pM{Oe8q0Wo+xc&Uo;Q#_R=D4n-^~{9lWl{_tesOd+C!N zihQ3feTTL-BAuA`K6z8TnR)h}4sT`NpT*CC)b-U4qaN+VX5#`)HyTl3;9jVJ8( zeovG}?2G0h&etMsn-@oP@OtLGMP488P?TmFSQ=lOjYucvy-y>icr)|}t z4;_lqECcJsdv_rkhHt!1@BHaaEd8uzDJ^}E(kbc8(y#ikp5rb3@*mebf6|qu@ma05 z^e2_BNw=0hOJl=-iQ9cxX+xAA8TLeJ|Mo@m@N)H<)_d(w=-mXpwx!o9%`9Cj?U42? zy-8_q>C1mopLviDERBz+g{Ai@9g&Vj>2YIXz4$C%TJO0NtpU9w(WCADJF{Lq-pYC( zQ*S|UWodjpS&Pz$HR(o_j(2Ol_*cZ)1e9Uf&Qm-XS zy#rC|wMFv~Uu|ZhVVG;?NNGezlt%PK^AKNw=A?bnfu-?zp%4wjv7c%frCBDH#^;n$ zl)R~E8D61xu1BJ@FEi0R%=MS4M8ohCnk7;iv9k29l-77_(K5V6vurJm?@mH1j{PT% zjg-bVM9XladV8X@wSCb%#P=>udM)eSs$SdD&&Au2NS_b=wAO`Q$9hZkde(dVU0N5? zfq9v{LNp8?)7VI9UnZ9Rpwbd=DoX1-6MZs_l~$r*_|EIK2J{y6R@R%SSCg(ux0e2b z((u)BmfzMak$g2oX>0qUPlh;4le9&8AWCc17NvLonP?cE^o~Y|l;-P*{8nPU_*x(* z?UN2HeYdt&h=$?ank7=2Wkhdcy$`B4#haNIXI|hfMQQBH(s(ahlWxt6TWcKb_HSP_ z54F4&-hn91(zf(bAJHQ}Y0tcGkk`i>m=|B0jqoPs#XXqf&CGj|#xC$y=DkYZMwGU@ zHSZ_oHJ%u6r}4AvebGEj<+aTFM7&L!7q`(d?_c8W&%F3Ppl{xPe&3_Qz`PG>>`0XU zG86MYDQ}85Gw(e)-YeDX((74zh0?yI!??QUy-waplvZ~v@_n}SXOvD!XXgEeyanD; zlt!#9jkkz3>DIjXKDqHVyKU@=eD6i`5dR)6(zbbVL^a^iY(Z%LbO- z9gm1~Eb=3=^fU2@NRLFfrsp?HAG6Z2k*>^(x92t9*1Y)Yzwx!ZBia|u!;>|(h1WLk zP+kYGD@t4IS$d<=KIy=`56BzgP0ZWKo8ldb((%qLecT^wpGlXZbi6A|pR06Dx)G(Z zTT9=lw9(!j$DSyS-51Tnk)`dw`>eb^-oU*09%6(yF)zN(nc~gNYkpLF zkGB-16v`;!P?@@oE>0(uV-G|mpB0mmG< z>D1C^Dm@aVnP-;9NA!iI_U*cP@tyEmlpZ%WqBP&u(s;XXeB&OTkWsVv-AZ@`=p1Y154w3x)JHbyjN?)6mMqUf0ehuTbVbPx5nFu{5UL) zkIIb;IS!E@hbX-dZIK>`(%818@qK7llt%Q-`*=JK(K39m)_GvwgYrh^y-ME1yz@S$ z`?S#|qJ^cupmZrp+gMrpGNo%v->Y;ZN?Y4nYWIq7+U@OaD~q*1WI&Q?2e(**}p! zlabfLI}oK=+LnH|(hg~tv}bAjtglZxFz;;|F~S>*(tHz3Z&f-aotYQE8C~G5%)3v$ zHQq*)X4zV5pE`dt$03@BFa9$f2VUE}Zx$AWJxgD%v`;!PZ!B+2Z(`n5-c+;< z8?EHby!iTWVcvhpTbcJk^=eVNhpsI>@3*w}madhCi*{*4vov9#4a223=p8e?1-+H^-mP9ux+dLP`cb9fTjDGq)hvB^N*ZOm| zQ#1^Zzp-KDM^5hmYTJlE*1lvSKXTG8)U#f^=jEbdxK1-iN+bI84xxc)9^#|-2yYBc zERFY%5^o9}K{M;c`$vVhfR@n8dhwo8i-zH|+P^jF2HILL-c!QGvG>|v)a^x-)^88m z7tKSwr!=kifO;*`1E_7ic>l<(cf~L1k%qJj^{f}~DY^CjNWDJkAvCaFyu}vQd-gBu zF^6;vO|19#@fK#i-&Jo)dIZg^_az_K`dRO(H#NeNbY-dCw=BI)>4tP`>DOp%__nxK z-|*jb_KC=EYodAhE~QON-=nledH}Vp_bT-=>$Tpg6(a3IJ?s6Vdb#!9rCy)(5E@u7 z-ct(eebujMg-FNH#Cq}7Txq>uQ*TOo1kJ1$Uqx1;bbDTqE}@n6KCJz#MZ@qFH|snA zQ5vzPw}G~zd3aDG!nf~wdm>*y(LBUYj+>%k_!-R?Db3dsEyJnbdQ>Je+&4 zR+3)FdOxLJmtN0$->6;1HP73qR>39YR6yXw`VVfYKp7s*$W-Uix==HcTS5uU#5HAHFe_n>{z zJj63Ynj$^Fy-RB<@-?M*0JTNw6-7p`L)wLU){E~$bI~x|shK1Bn$kOj2BP$ev7k35 zoml#>aZN=!XQ$Mf(wmCXd!ZvyI?9=79-4ot)up$vUVK-yq_?tOe1@$>!%%AGNWQwF zWti))zY(RGx1xEtLNkX;cD;tkR~OnB&BNQ&Yl?>9E2mmrk*_Yj1E?*UhxckkMz2HK zg?iTe8})M0FuX%ENAlIBcL)tcx<%ZfTP(d1=@^<=FTN@*MZ?f|x7JydW}ebJf@Y$5 zu(N^aEl8Kp%6j&UEgFVXnzfMk*_no z1E?+X@5|_QNV`zadiH&pXc(?J(mIQLo#`Dy1JOLh@6g706Z7nwGrXy28U9GOt0TOb z_2LRucnj;@uig@GWxe=XpcW0oT6?v&-ap6NDZQ=r;%kBM9kKWPU(<89$kz|r7tKR_ zEzlJCs*xT*ZR^F?0+~o>j%vP0X+(!!7wU=9tAd=~A?d)<_*$S4>HDZ#^lF&iNR-|c zjYVmnC!%?XuL`D?#`i}@q%%w7J-NbLSTDX)TH>v&7atvKytVb>d!`NE)_UUNnt4HQ39Ur>HbeVT z(_52npsn@dZ9H`1%-{T;hEbZiARIm%nkC2U zLx<47dcUP!AsU9$+P@L$7@Ambt6pin-b}BSNRObI^}hbEwUXBR6ZICPOK4@i6YAC0 zd%=5kpC;WvTkFMhI>IyK{(VfnhR9b9+86on1FZM*TXmZxJ%HNQv-PvyR=o~s7wTE> zJ=(uqVje3P>7+&`qx=o7wHc4*`O+@qX`1`by^roao(9C+zRId{0_o13O zlHVrjEuocY9$u>vHN7?I2HINh*VGH$IP>doYZ&=$Ql76av@e>6rA9PGsn;SsfZEpE zsF#U`;eTu9NNGfeUKi?#(%&to*C#!M2G)ybh7_V<82k^dvnb6xqBn*nqV$|s(wmYV zK{M;c=e$ZZ4F5+nM@lm<=q;g@NM|YQHd)hKlWw4`_3ZqYXT_P{_?ud1QJQ&Al-7A) zG!N%}La*iV+UCXQ&G$};G@bB7}5$PD3STCMmQd;li z`*c4iJ%VP|i)Wft)_X|31?du6SudVxQd{r!x9fgRx`DRVi)WvNOXL21UcH9MZ;8;p zXddEuC{0mX$rkAW)V5xH+|5M8@MFKFTcRk9=+NszJ&`^Yk1I*9PkIOqtQYUUg-B-!4@m{q9}+w;)|YE9=E?oNDX6{0`kt zNjK2edhvZ;_^vqLr_^hReEpz(QF?dR6s6T@ksd&8>&5qZnMh}B{kGOmXL@%nN!; zXk{bfy>X4Vfwq>$S3Kd_yOnG}d(gf}?~j(cP2#nn1E_7i_}V8E=~HLzUx%~{^{f|P z`{dR;@jLoNiS!T}STDZzDXjO1dLz;?G_hWM?NeIsZFlOilk^ChSuei!sjT;y-_>oB zbP27j7gw#e-Yx2_NjK2edU0JsFCOpHeowbak>4hveUYBGwB4r2Z5j3-2 zeC1Jz^f%Yck^DAEZwakL>0NY9Z%w*^w$_X1nuh1ZnO}NZkDa14b3^3o4DE~NAwKUn z>9t4?ptkkm^L{28hQHCwk$j!$b)lXp{XQzE*C#!M2G)zu&V@+t<3Ff%7Wq2U8$%P3 z{(^d5E$K~3kD!_L;`4MR8iq5PIg+n4y(P2~rDyC7-qt*OSM*%g584-{XW}Ma3p#+> z){D=?nP?b({10?LC+$K#>&54a+pg3s z`#I?mG_&3(_4lo;_X+hDq)TXJy+_omMQJ71q#I~!y(fH9x5Veg<9*YIbW0Sa5e<>w z5}|$3JbZ^nH0iZS51_X7Ua4Lt8iu{4Zi%8abBA6R>WSvzr!*p`*C#!M2G+Y(y+Sk$ zzo?lbrI|`>a9sP z(AIkKe1Y)%xPMpvp`MRKzG~3E$X_E_?^EivNDrX4_2StCne|@%N4lSrcA=j2;-gA# zy+_pRlO93?>&4G*3hSL(Y5hpY(8PM5*Db8H-Wm0#q({(pxJ%HNQi{H;=*85fUI;35w zXTA9SOm4k{yS09#htR-!@%x#=dUN$gq+@7ez4*CfX}#=YT0hbwXlA`9{7>EftoLE{ z7NkpPWxe?AO>MpB{i)WEbOUXz7eCDlFO2K=dG#71Uq5JHG!GYRyG`p||7Ti1(gUb% zz4$nuS?|1iw0@*rsAs+SIG$VYUF!8o521ne;^TN>y{G)S){k@yO{^Cmy-VwTP`xSX z5j3-2eDtoY*ZT{tAL$ZWSuZ|j*Vg+B_12^tXluQfX zM!nK{Py8#bAL$V^v)*Iw*ZNs+rrv^d39YR6Wc6z6ebZlS{YW>^)_U>myYQm8e!s6? zL*(lR?ThqkPLIz`QF?Z1ksd&8>&0`+GSM(xexIJ5MQKEbUKi?#((_SHuTOdi4XhWR znF`S`+^d-*rI|5j3-2e2%I_!|=jS=-FA6W?s-+LMzcc#AmCT z-kNj+ZLJrdt-^Q5nLnzTBc+)eB41}{UzE-%YSL?w9zbpD#pnG@q-(BxQtK@8b*9&a zdZKxV&vZGxKItJeuwH!SQHX}&Lz+2~uQR;h@%#nPZMZV6^zGxmwjcC$qksd&8>z!6F z6KS9C*E)-Qo#}Oq2iqx`b-dHQoja-xp{3Q_T{|*G1&(0yRlncn44>()kA)tqZ*lX&1^#`*?>?AsU7+ z__WrA-iUMzm84U=Bd8MTow{a;l#XaYx`b-dHQojaFOIW(@dH{Hk*|x$*9B^lw(t(1 zOrG)ts3ONX=z<)nSQL#PnxY_Gr7y3iYuj-irtigyH6qG9+|%@WDig>(tkq-(ql z6t0Z3wEj-(BJy<+`MN+&(iYwUl!=C6s#zlWx{!9EoV1U32o<7XIQ|)}3%wEP7%EAp zct=nr(mQa?63N$vbP3g@YrG8%zE+4o0UlKSpHG3;7OOz z%6jn{oVE38_12^tXluQAUC!|RalXNWdIc}?b%FLpy26@zP3!%OdM(lesBOLYE2hkP zZ}=y@10wB0J?q75dgj*qclG+DhtR-!@rs{?^?vN1^$v)13{9*T--(pgd-VU-J0Q{{ zXlA{5CC|!w?@(_+x`bBNi&uTAt#{r-T0hbaw6&hS1G*}%-><0G5c&E+`=WV>+ihB} z`7c^O(gUb%y|~@Xdhb!ML)wLU){EEg%&qrr|El#PJ%k398nLFgfwndx ze)b<;zMHur@|A@4Me`7^($^H}kySHCN;9|U9YAf-JjCnuW%N3vU8rZhc&)lzq<#MP zhEbZiPwx;K*ogRfNg+zT5$PD3STA0Or4;F%ux5^wMoj4)K{HYMW~!pMAYDQ$>&3He zYLVWd{a>xKD9ya4w}G~zbfuM$?|Kc9uQRkSO6Q9*b}7{+86mR1VzJe zw`OV5JD}ILUi_P9q+QaUrSb2Ui-zGvAyGP_LwW=2#b1*bqLhwFCzi&)Q7Ibgnl_1i zUFglM7ym|;D5Xo%m8G^WqG5PNLn}mYLvL%n_*V#ryIJ-`zAhqt4x+VhiiY7cnk7=& z+5x?`_2P9AGtw?;&(e5>#9XBROYx{gX_iBJ1M9`BCKjTUj!7q$#_QpgBAwr^St6z0 z5xtr9;-{At>5_D1seM}|(%E-=S{Hg7dRyzo$LH{h-8S|_zAhqN_fp$viu6pZSt9wm z&}&=I&etRDlJ+c(S0&6v!%%!dB3~DJ1MAsYjv`+d(ut+DZq4CkDc$k&D5%zE+F z<`QpZUOdVgZv$;Djb}85t9M7f2knb=_GerJk3l`(C6 zk$xp9^1rz#eFNRJbg1-zv~6j;4rFHO8Kqs)o~7{|g51(Ke6fBE9|{lCCU`uefVVulW)kFX`6OcvZ*ngYkI(S?Qk0 zk5@Dg@%oNUOHVvn$4lC_)LwgA`he0dY0uJlrN`XT{4qLS(t)M%xAldkpHVs{omhIQ z($dmboUP*}omm>kR+fHB>5_D1X}oS@ZRv~ula7~kYiXQ0{7^jJk1O31`SFV8Ai z^!p#H<0Wld8fVTd{e;pkY0uI)Hn;R8U#jCJ9atK#5?NTfQ934_SQ@VqSz7u7=jeDz zXO_k@-78DiN|&T7OXE3SwWZhmXB{u;*3x+O!Z3)(`>@hIksq(f&yBbAjgQmulC~|4 zzbMTt{jAb1Y0uJlEuY-dlV7IeB^_8AuN6^P`dOu8(ut+<`WB_7Z$DSZOFFYOKIT-G ze(`xaUecAN@k)iYrEgcdA>CSP&+$LJd(7Dr`SFV8A-*ndigY&1;}fOFoCA7o>&5f5 zGLb)Wk@hT&k3P9*7_QYUk^GU1-oSeCy-PtlCY@MnkJ%!fEv#8edPnqT){Bpm73q?6 zWof*|U@g+~>X#=<`?8_8wO;(qXn56bPxnN=E~0se=YTgwI(JpGMDlf^*S20f2RtL~ zlJ+c(=a%Inz4kdjk*^EAf%W1UWrZlEW73JG@jS9pq)*i}OQh60qBpZ%Jm0$_U6QUu z>AHipXc#W}3atyh4ZW@P;uQnKt9RSj6ZyJ`J{jV52b&_jKGiIdd|l|Ztrus>NV}vx zk^hoGGz=GirPhVsA-#e1;xki0IwqZ18n6FXiiY8K%@WDih2G41@oIw=>5_D1sXhCN zhT-4|S{Hg7dRyz+{piGQ8+#&O7tuV#eQAnx9*Sm(X%F_5wq!tasr!`BY)Z5V8S}(p6 z39s3udm>*K(LBU=i%romysVih&2m7mZN2!)JQJm~OWL#4)9(g57>5_D1X*}Lqq;CZ^OQh7>(A!!s-UGsq?$SMx zuZw6N;`OweqG9;{uTGR^IiT0JUc9naCQ50Sv}b9&##S!U8P1v|QtBPj8(1%X;#H82 zNhg-Z*QcdOXJ8*BO0yi%n^`ZuQmsTOU6QUWjmKMybZ&rViIjR9dRuzonq9gl@^umE z*O@xrrbt(fePW_C%K^Q%_2RXpGEqvqq&-XHwWM;99=$b7q|`g4H?Us3PZy+P(ut+< z`ckE67{2RxqBP49y_xmmRZA*SN|&T7OXJn2YLWgsgJy}8dK-FM>&3GP!fSWwp2*il zq$@utZHk8B+n$st&2m7mZN2zfw2Rj>FJ7Lug>Bee#4i zh9;KAGkQwABWPx6JbS0YTS6;K?QCJZ4Yaj1o|C%w`rYyFi_$qe2Y7As;?=A&ye`zU zG+xar$2)`umd5iK$9NO-;+3n8@Mh-4>s3{FOK4?jyh>G#w}G~n#;a6?le^>CgZ4%9 z5Px~!#5;i6md4-PXLwzxXKDPEeU5hs4J?hntuOG#(8SVsb)6FL2%1?Me@9>8EuodA z@i+4|-Wu9KTkFMJPU8(6IkYeG>!9HsKy6Fym+g2Rs0;P17q7RJ z8bcH7#Vb;kcvI*InprPik*dO5Kuc(4y?B+X8gC74psn@d^{N_gWUZim(LBWKRkiRA zpthy)aW}*3KwYS3y||`1ULQJy2G)yfTHuYKF*LDWymD2EH-(O%nf2_q|9A^%39YOb zuZ~dTt)UIHwO+hBLU_||ts2lCv@c56SZ(69paZCFy?7m^46g%qp`P{Pb(C_vK6D5T ztQW7NG{PH06HDV?Yl?RS%`AXQO>Owv1#q;2EygqaY4XkJ9x8seVF*LEBo!^c(g^r+^_2PN!72X0` zLM!XVTVjp3hBnaFdiL$`n^`|-584;`H7W59pthy)m!}=PF4VKM`IlNNygqaY4XkI+ zzjz~P3{9+er`{WscvI*InprPi5vamjKuc(4y?B1?8gBz_EseM0#&EYnd(gfpeN))P zYe5H4+j{X6pbW1Ab)la1?5a6Ln2kndeYLfI?qz6#jdhuC2qt_wrLOtun z=kq?^AvCZwKA(^9#?Zvlc>62yrqB^IvtGQfR(K0&39YObALTcATl3;0dgI!7er!Ag zc2DH5)I)qb)YWPvtIlhJ;&=qhtR-!@puco5j2J-){CFKPw|eRnWga;%?rFGw6Zk*D!Im6 zLmOyoy|^#ot*jNa2knde%3pXb=m2V4FFqn=cpaz<^{f{^gU|8$&>=LiUi_rIz#Bnh zXkxwii{=t<3LQZ+>)EH>cnfF=t*jTXZc^i|p$)XPp8X%4g7t&;pnZ}5_Z++ybO5!j zXa7eBuM71ojh}4iczscNWH`hdSTBCYUEqzZ7yqaC7;j=d``Ojvz}ca z1aAqgERC-UYP_{*8RGu~-{5VnXV(H5u~yI?v@c3m0BPYJKy6Fobw4_IU8rZNUE>4q z5E@u&*Z9C2L1SoQJ-fyS-V{25X4bQ7eBdphCA6|${7kFHTSFUYYrXiJ){CF)E>C^{f|v!<*yvp+jh3z4#m60&fJ3p^5e4Z+J_*DRczQtQUX7Tj4FB zCA6|${B3THw}v**)_U=F)%fw<3hhDrqIrnFjBVi^Ky6Fo?_oQ5U8rYi{1t4D*M|sP?LrxpLw!;DzmWyr z2r8i|R6z@D?YQpeEFUGN=RPP#+pWQ)mIz&>9NYvja;|LZNs z>q7-Jf=Xx#RnP*eq40C;izxjMwOeWvhYDx}mCzKbpaoPzYp8J} z`vPT92g;#7R6rxBgr?8}T0`L%ciU}1O{fKBPzTDPK2$&@G!>=))37j#|A}F36#v6Q z^Otse&=M`f&*~L&hSxFgz4CIrK2$&>sD!3a1udX8)cWPP-S}VCGEsU})iE#r*MJt)cKv_5f-^EhvLJP!9E>0vbUjG=(Z?0oBkN3ctesK~1OyWl#sop*}Q%rqBYa zp*0k4W)Gky)Pgdo1NEU1G=(Z?0oBkN3ct!8KuxFxWl#sop*~bVBdCO?Pz5cZ8d^i) zUF;v!gj!Grb)X#TLj^Q~N@xl#pf%Jecl*+WT2Kacpd9K$1vG+6XbM%(0;-`k6sEhq zYCtWh1LaU3DxeWmLQ|-M7EleXq3~|@1!_SZs1Fs;2r8i|R6z@cO#Pz|l2a0~kaHK7)iK^-WE`cMIl zpi<=D+~QSu3%nX{jTe4>H?|>4&&f@^7G8$e!RtdKsD!3a1udW&T0`N#@AjYpwV)2v zhYDx}mCzKbpaoPzYpC&_-5#`{4wOTEsDMUL2~D92T0o82?)6a1D1O(QiTsrjltX=} zfJRUWO`!#}h8pkPZKDabpbY9jIn;*=Xar561yn<8DBQZ+g9g-uT2Kacpd9K$1vG+6 zXbM%(0;-`k6n=yKgPKqa%AgL^heps8s-Oi_Lu;sU+ink9PzH6N9O^@bC_NsG@JhTX zUWK>7TSJZivDYADQiBbrbKjs-bWP^FbMu zLj_bq6;wmvx0w&hpbpfBM$ib%Ag!7 zpc1N}8VYwZACy5kR6yZ(83AQb4%MP`+YP_Bqb5{{(ygnQ8I(f>R6-RL7P}*FLK#$w z(mGdA4TTTw(k7HaIaEL;R6#YQ4^Vt-O(=tMsDMhSf@&yynE9X#%Ao=(p$cl=wVNe_ za;Si6D12l$q6uYC4i!)dRZuPRd%z#=s0kG!zXw1SR72s9cD*K4KqXW`HI%J(V{@p0 zN+|sCuGfSzD2EEDges_p!bdq?D1&mSfJ!L*3Ht(NP!3g44TZZI3uRCa6(WDMfGVi@ zvE3{gltTqnLKRd);ZJw76i^9OPz{AY+l^>K8I(g6R72q&#zGmCLj_bql_;%74TV47 zdAZ16M?fW1K{XWqVmG1*Wl#mxQ200_pc1N}8VdI^0?MEqDxeaopzJSqv*b_#l~4uM zQ2tlDu?18@6_ow;u9rgvR6-S0L*c&N*d|m$6;zA-k>(RSYC?s`A8DWpsv-UKd-v!K z6;KIPPz{Cu$yg|Za;ShxsDf%J+|PVa2IWu`0nJE3Wa;Si6df|UD7RsO;Dxk1o1XMsJlz)2HE1*)8_NszvD0^TxB8Lj7 zges_pvcF|4R6r$EK{XWqZa20GWl#R6-S0L*ak#W@$nhltTqnLKRd);UVUOGAM@%sDvu0hQhxvACy5k zR6yZh83AQb4i!)dh5y4?D1&mSfJ&(O@NR4dl~4uMQ24jqh$fUlIaEL;R6#WqKFfSi z2IWuzl~4s`pWDrnLj_bq6;wmnBaDR#sDvu0hQhz^#x|i0%Apzx|CbR^2IWuzl~4uM zQ26|Az8or`8VYB2y(W}FIaEL;R6#Wq{vY!}8I(f>R72rEc4Kp>fJ&%>YAA%p?iC7@ zK_yf{H53|*g)*puYA8I45l{x@Pz{AWMnD;qLj_bq6;wmv3z!eepd2co5~`pY3TH7N zltDREKqXW`%`e=|l0i9CKqXW`H59&RH%k-Bpd2co5~`pY3SZ28PzL2t0hLe%)lk^q z%~wDrR6#WqzGOF|31v_Y6;KIPPz{AgGapn!6;wmvF^qsRD2EEDges_p!r9CRWl#R72rQ84G1l4i!)hg>!aebEtqysDf%J{O8@+ zCX_)rR6r$EK{XT}$9zx*RZtCOU$z^OLj_bq6;wmv+}+qFltDREKqXW`HI$#Xo3DUs zC_H|bHlYkEp$e*@@a2q!GAM@%sDvu0hQj&G2W3zW6;SvJMnD;qLj_bq6;wmvE13_< zpd2co5(-aXER;bxR6r%vJhmH~K^0U(;j4DNCX_)rR6#Wq{tIKF49cMbDxpf`@4=wZ z+R6-S0L)nve^W{(hl~4uMQ2vzN*a9k{3aX)S!EQtj6;KIPPz{Bz z-;HfT8I(f>R6-Th{D$2u8I(f>R6-S0L*W~DvoxU$%Ao=(p$e*@a3S+S8I(f>R6-S0 zL*bj456Yk%DxeaopzNu;S#qd=N+^8uuGfSLsDzpq?RpuMLj_bq6;wmvTXwTFp$y8Q z0xF>js-f^S=7TaQhYF~KDyaFbyIC?QhYF~KDyW9S#k*OWPzL2t0hLe%)lm4h-FyX9 zLKRd);oEm3notJiPyv-t1=UdY^xb?pR6r#ZF4^^(PzL2t0hLe%)lhf_^FbMuLj_bq z6;wmvJD3m3pd2co5~`pY3K{c3B~(E*6grH6GAM@%sDvu0`OMuc8B{_QR70W52q=dN z(J;)Pq~BEzTi%P^x#R44Ci9~Hv0V(+x5DN3)UGV`9-*4cb`IaFBsXG$Zb5hYYv z`rNP6*6?a5TpG8wR2nIbZ91(q#j)=cHH{ws4Z1}b{embrI{zCr zpV5t?(&(HEHJ{PXi)y3uzDe^vKh9T*nj*iAn|JQ9-q(ulNpa4KKWO*K3M&wPdA{(%1~j zEq!68?cx>D!e?^6mb}j+&xj_9P%5hbq)WtRS#(nu*SL}?o( zR9Wwt->sRA{!|pMv6;U|`zK0cGxI(tFH-VysIc@cSLl|AS3;GgkN#dA2VQvXZeN;E zCerhudb!cpf1lHmdbzZDljP4WFqO>pJb#d(AO6|QUc}*y@^xu?5^1X)&OW*tw zZ4Ix4Dog)eX{0o^hQjOPc7OV%+O8<2nJBGu4i(lr@B4KeMmLEnqhnX;IE>yS3Mb=y zPkWixUgYzcSINupa;UKM=`Yvb77a=`QAg}4RLFi4!9*(H9IfpV7~YDx)X=u;w%RJyAFn=X=4cG@sFD zM48c>U#CevRgPbDZx1QPb$;k7_CY*RltxrgZRxqM)z!hT#{KMoMEdD7W+puhVw%3aGSnrZkdo7pg6N z+UvDlyzpbYUQ;v-cPfqK+l6vVpK(&##VerF(hn<*X(Zn+R9kxWo3vfL@RnV#DH?`FE?x%ZmVQ8Kq%^jGN=u*lW7;lW1=W^*RB0sN zZn2}LNdKkdT5T6EgK|r^N+bDpq0-VfzD3)`tDxG_GfE@*c1JsEiiY7Q-m2~5 zgi7oEf8^bJ*i7aB_y6-eXMee7=8}X|mVJ^WA*4o=1)JT#_LPW^eCD~<{%5EXq z?@1&^vMKw7B()?YMM9F~eqL*4y*oaA?tb6z_j4cj?>K(P?~m7OJ+7Ix*331VbI!G{ zNf)JfH@cdL99NZl^KR^uzn4|Wa@DX8??zXjqok{+`||E~bsE{O`t@Uft}g1&{#;E! zs&D@Os=Q*9G%KltkGLZebnuZ*d{eAo8@2~o6>=|V)vqTB^ z+7(=zugtYcQOdpcwn5yQTxN^X?zP*vHeZ=-9g*svf4fZvbGs;eyP|}9?QX8kSN3*A zDfikoL%3bJ%oe5HYmahmzOuI~Qm^FS?h8Y?U6j3DQNq3U53bEu_I5=n_uAgWxLvu- z7Ny;5W3O|&a+xDi1M+Wo0@vm%d%L29d+jyDxm~#|DN4E5F6Y{OWwy0NY4_UOM{v7x znIlrK=HKp4uFY5Wc0~#I+T=)XS1wDT?B}W|?XGu(^&DAG4b0#3v!mEE%IrCTvhxj5 z%3be!*0WtbJ(_#!>J)NZz3>Kmc`bi`Cy?c;&lv8NtMHq=vRw^DDOb_A*q^J{QQB3B zx7nYoDM$^<-(R`0?9bJ^DB=qJ(>G@hRMzT$U82 z+-pa3ZN4(w+M=|3ZSFhVu3YAb)X@Cf9mBQx%HFOh;a+>mRBl%;ONvtNwWGN^Oe0_QQEz>!dz}wE^|a`q_>47N}=qiB2uHg%PdhsloX{zwkR!fM2XSf z{*t1!$PuYGy!9+mLX;GxM7Ag`azu$S-u{xJl*ksPMUE)(rfe%piEL3?EQZu|QERiiriyV=f z>1~k`*&;Q|yVepVL`hLfWQ(lX-nI!*Qj`+eqO`~nsX5+WEKx#~6s1IJu52Mnh>{{l zq~^&MqJ$_ZN{MVyTI7h-eA%BUAxer;BDFxa5G6!OQA%Ws(jrHcSm^C9DN2cKk+sNM zFCj{bQX)sB7JFM*qJ$_ZN{MVyTI7h-64@Whd&H zM7Ag`azx4ZWebrlN{bT9y!Dczl*ksT<=%RhC?&E*>H}F%lt7tBC@D&bY*AX|h!QKj z{Ut>yku6G#9Fh9a+tv~#L`hLvNLqO`2%h}1^eR+JDWMQM>EQk!I3Q9_gy zr9`$UEpkL^v+Pfl5G6$^ku9>ec-tmKNl{8EQjWKtB}#~rqLj!MrA3ZN?U((D5~8FiC9*|n zkt0fe>+LTkvPEf;BT@&vEs~;?$QGqVj!1pyZEJ}VqNFG#QU_%VQ9_gyr9`$UEpkNa zknB&C64|1($PuZ-vaKj3vPEf;BU0bXwjx`U7C9nyM79tmL}`&DQa{KRqJ$_ZN{MVy zTI7h-QQ4m;Axer;B3q<>lx;-`QBsr=*`l<_5viYKf1-paDN2cKQCj4PlE=LLr9`$U zEpkNaxVMERN{Eu8l*ksPMTwuiy(C2`ku6G#9FaQVZEJ}VqNFG#vPEf;BT~P}{zNH} zEm9|CJyAlG6s1JANS%^xMF~+-loHt@by~I+r9`$UEpkNaSJ_sS5G6$^ku9>$c-tmK zwkR!fMCvzh3rmy`rA3Y?an{=+DN2cKQCj4P)bHN5mM9@gic%t5lomOnq!`s3VB}7S4N@R=DB1fdod;3d@QX*TF7C9pIr)(=qiEL3?05G7G& zwwV&yBBf0BEW0I2h?1g|$QD`J+cqIeic%t5lomN6WxTyuqJ$_ZN{MVyTI7h7PxdED zh?1g|$QGqVj!5}sf1-paDN2cKQCgG;cza2TQX*TVg5G+TC?&E*R>)f~Axer;B3qOe zIU*JI_F{<=qNFG#vPEf;BT^CBpC}=+MQM>EQaQ4%C?QIUQX*AAwh$#mNl{8xpcU zBeIIfdLmooh^(Trp2!wCBCD9JC$dG3$huV46WJn1WEGe7M7GEgS(nLrB3tB$tjlFR zku7pW))lgz$QC&wtAwm4vPF)_vSdAxEpkLwNm);1iyV^|fu9Njd`Tvz$W{h=2R#oq^q{tRIBI|ltPh^W6kyTCB6WJn1WL1~-M7GEgSv6!m zku7pW)(x_r$QC&wtEQ|cvPF)_swL}*Y>^|fYRh^eTjYqW8)ZF_EpkLw9a&FgiyV=4 zldLDQMUKe2S=JNTB1dE;WId5Bazs{LSx;n(9FcX4tS7QXj>xJf>xpcUBeHIl^+dMF z5n1(RJ&`SPMAmJxp2!xxgQmE%5l1fjPA;<=c-xjine~!#SwFeVmdiet%N)7Px?T2y zvU`!s`pIRsT;_=UcX(S^C_8Tw*&;_|-6`vdY>^|f8p?ViTjYqWyJS6)EpkLwBUw*m ziyV=4x2z|!MUKe2N7fVBB1dH1E9;4Dkt4G1ll4Tl$Proh%X%VPxpcUBeI&xdLmooh^&WXJ&`SPL{>9dPh^W6k@c{wC$dG3 z$Z9U@iENQ0vL2E3M7GEgSuJEeku7pW)}ykX$QC&w>oHkRWQ!b;m6Y{Fw#X4#EoD8C zEpkNGVSMUKdNLe>-6B1dGkmi0uo$Prmj%6cMO`vYyBmIU?&R zSx;n(9Ff&l))UzxM`S%M>xpcUBeI^6^+dMF5n0d5dLmooh^%(9p2!wCBI`L>Ph^W6 zk=0(-6WJn1WIZqIiENQ0vO36mB3tB$td6pt$QC&wtCOrJvPF)_dO_9`*&;_|b(Zx+ zw#X4#U1U9xEpkNGi?W``7UlolvaBbvMUKeoCF_Z7kt4EFvYyBmIU=jKtS7QXj>zgG z>xpcUBeMF+dLmooh^&6Hp2!wCBCEfwC$dG3$a+QA6WJn1WDSt@M7GEgS+B}^B3tB$ ztbwwg$QC&w>or+VWQ!b;HAvPI*&;_|4VLvpw#X4#Lu5UXEpkNGP+3o8iyVhvYyBmIU;MMtS7QXj>sA%>xpcUBeF)zdLmooh^#kc zJ&`SPMAjHtPh^W6k@cpmC$dG3$a+iG6WJn1WW6oxiENQ0vc}4KB3tB$tZ}lQ$QC&w zYrL!{vPF)_njq_mY>^|fCdzsuTjYo=ThwuS>xpcUBeLF=^+dMF5n0n@J&`SPMAmd!Ph^W6ku^is6WJn1WX+WI zM7GEg<^NZ1+2d)EEpkNGY*|laiyVwJekrw0yGKfqj zE6JDSH&Q61R5?5yx9Hp)xRmh{HFBwbblGWsM@+0vVP^vt+i8LY4lGn&o@;=!}z9x}e zrK*w#NnbLNY$7K}B+BDO>XC;@2Qq;yC)>&QFDVeWV?Eo2(+c$?v3mLGBl6NqUeOWD7Y&A{QxT zks9P~(wg)jBgq1?iF`wTA%Q|X=cFRJiL@j`$xO12d`r~DN);!!lXj#(8BdmwZ%LrA zQYFdVq!SrVW|NP}Ve%&_dITx9^d@u3Uh)fxT*`h(4RSYWO?r@#t*WH&iR3YO%tCQZn*q%V1!EFc@mH{@3mEyZh=)F$_nwj@Qy zkVRx2*+YILIi-~-!KiIwB_$&I8jNs)16DcM2}l0QhH@=9Gr8j&YRcQS&^AZfCj z93z1%mAZ^nC3ljRq$hccEG3_jpGkoVypG7Nq$zot^dw`+d*l=H6**2WyGp6Lq#1dh z^d)bQ8Ds_7N`4~Yio8F`HKZE|4oKbAQPb zq&s<+Y$wM_&b8b>Qja`HQe+C*OnxQBs__0G4alQp5Sd0kCHu*5Bz_&Q15$@PK%OUq z$xO1Ad_j(qKS{-^+-LF>d4)_Oi^+QOCHaY{>v=tpiliQSlJq2_$ZE2WoFWCP@m?hL zNK4X#3?q}tR&t8uR#&P7xsKdP9w+_DII@U*O3si%HF*7zy5u3!p1eZFlf`5k`H|$@ z!0VaZKpK)q$sjVHY#@8dF`{cSR*>?f7HLFUlb&QISw~KiqP2K@Nn?^C+2YlZz8PhvXLWD0zvzK^Bv( zc@{Ul9ECo+^w zB`e4d@&nO#@R}l($!(+sd4UWflgTo&lbj&&JJ}z(owOod$UriV%p)I>(RZ;8DNkyV`$#yqd2!UMd=NW~_+#z@Bp*?&{^L&`p+)Ets* z#%r2Xf0)k~a&vRuPvr7Pcu$coEqJaURcayW_!!$Ix$mTUOWr4s^O`3c$y2R(eLulG zhrHaH-{DCf6Y_2wwt0&COCD^?HcvAql3SnQ@h6?1<+V>nw&Q0q|2aM@+VfbFTb^fs zNBgJPbN%m%ZCb#wBy+O+LeKd96Q>6Pfc0&+7nQZ=~C+ zjOFCzfjoAk&ueTqi0cRQ`XYL$QnSb-!`PN|d!2df2!2oUg}qMf%KSn_0|FNVVCF2V_6#I)~qVE^~r;{ND4~-vY)k^7caJq~y6p zybs9pi+SwHkR^;?WX5~E)|T>FPg=jvKhnC4*AVHkoH^+S%mayD!LbbK`XOWRN*;4k zeHEX%X`Vw;e>KNnq~%9E_oVe2-kapm$Gp$i@>#r&&y4lFE;sO4lNUc>KK&_=1IgLQ ze#vsubQ6ygd44mWE98wW%(b`j8r;U~fIP6B$AkDk<1?8&wS(8$=iJ^-UTfs#UCb+Y zbN{~J@!P}eg*5+?@%AfTTjYs-jFVsUnk9`L#)JJl4&)fQ+LbZu2q-Ka{dI;yO?NtNeA zr-DkTimI-vq;64_RXtTj-Kwgp`l_0`P1R5hR84g|TiwChcd~Xv*1m_e?`7>Kto;yc zw_xqZS^EjDeNx?}+NegVow{3fVa@KW*+bo@daC3K+unOoQD#+U`s)wn#9-#{A(VXpgLlxCy)TR1ORa}o%mL8`n z>G7(vwpCRr^oAeCMjLcT`^c>Yd&s7ce0(FmGs2b}TmfEv=8u~Tz{uF>Vs;NKBTtk!)k~AUhUF9sBiUAbxi-LPV1l4pZb`(ppPq` z`B??c2^BKGsJJ<)^2{k!#GF<|&9CZGb4Haizo`o5th(C#t}2;x>RR(BXMQfI8oUf| zGFsnejBaFn{PV$n-Pi zdbqhrPcVh_6mzkD#}wA@nj(6dDXLeP;`&2#h5pP`&^t^;{kf^6cbdw2m#Lz6o2vQ? zQ%&zNHT0LJrrvAn=&#I8dY`#j?>7nkt*NUIn_Kh`rk?)U+^T;ucj!~*PJP-m)W4g% zwDC34KHuHi?`y1ceGllkuZb?`dr)8EYpRR+9@52q&Gcoyhjj^Gb6wW=h%WDIp|9~h zs;~1srmy!Ub#-4WUEBABuH$R1Z}vT@>-yU0dcLQ0eP3IBo9}7ez}H^i?t5N0@^#P; z`a0^SzE1j4-wQhFdr?2`dr3d(>#p1SUe?d~dh7PSKDwi?uYSqbPxtcm*D2pCy0>qT z?&}+@U-1pm1AMRRSAE0vK;H;G#5Yn8^NrHOeWUeA-y3?AZ;YPgdsDyTdrMFAy{)JF z#_9#WaeA?Dyk6#;pjY}P>eW75f9#v2*ZU^xt-dLGx9=Uj&o@;c^u4PO`KIY3zUlf$ z-wgeeZ>IjmH%p)N&DOvA=IArNx%yAvJRR`Q*J1x6o$Ft$4%3VIQV!gXerZ>6ELo>I#%l7Z>a+ix|?{$}5W;&VcyBu_v ziTOXc%kwjjyUWVyQ|_|uva{|oHuFz+S#%mtDEIT*X<>IccY4%a=B&QRT`pZ%#9dBF zU*;}fo>9_WdcU8y{Qt}E>HWU{Z!OQ&%DgV_=vB^r+~@VW)?I$zvzEJDvOaVD)pul; z;}_lPUViV?d)%eJOXl)sYck8Hv#+y%x_rQ=nb+S}+2!KdP2Bx_F*oThOKpC}UH*61 ztAA(ab$oDG=Jq>gmnE~yHk&%Q`}=rw=K3AIGRyMgGRrM+EbF|QS?=!M z+1>t=m%6*lTVLw!F1vRh;4Z7q9^x)n^?1`=#(Pe1m(6;-<1W413vZn1{#$CeA+-a-3{>tp*cxQGTsbgn;5AXN7?5>^edTYC6 zmL-Plb${NT9bdft?yZ@5-un$d=w4sP&ip)Q+EMrC2eXeysm&+cpTC`b#$En$r)rr$ zejMtT<1UZXzSv!Q`)j%2Quk-?`TBL6<^EiCdpURMy*|AA+j7Cx?&aR=&Aa@{DVg8j zyPd!9-`mfx+iGO@U&md3y(+Wax6}Xi`Tep_J@@+EUGH$0-u?3)zp@)M*Y_KqS&qv- z&feqa-F~uvX8+#%&wJbs^}EO2Z--Z#xXb_P{zBQ`_el2jUTSmZcAgrWS$;6Qxx3$? z3tPI&-`8c{XaDqjeU!bQBS&Pm_ul`VMm+0ozj<}$a&LU7-zW3Dmif4gd;Q>%nd`lu z+h%|M>+;OwGP%X=MtmHqt+cFyeAyWCsPyS{UFyuNC5=KVix=r(u% z-s{_2e_HnSbTs>VY&n0IyWZn{GyC_}^WL{NX2;bhwr8%tB0H`f{mgNh`7 zmtUkm)`s0>g@ASGdo_N$-ZyB@wxmw$6dc)c03s|>Ztp3({3l+X&(3H)Q7}n`RVtFMnf)M-i8qejmc6}u-p;H)`t8i)RBd5qemQY| zX8G6stm59D_q=)AJ@`=#_wrrY$E!}y%>LSC-!B!iujiugW%lpA?*6`?)7km5_xt=f zDD(UO{eJ&_yMMah-u;@AeLTBm=YiAu*KzM}<>{IC_lQvq+@A+`Y2+>^&ur{2z5D6C zKE2m(gX}mzB)jxJkFLsoF73`fo_n*$8Mm){)ZJf!kDhRsOBX)vE=Mox>@Md_OSwz$ z_x6q#yw{a)+biz%g}M!Pm)`SH;f>7W*)#k5eLgAk^LHIHOYeB(jU6N0?Y!5I_j`Hs zHgA6R&-2?i-R-^Y{?q5fyWgXiO>p=3Up+6U`^<3H8@+6vyYwC(-)GDJ<^FV8v)29D zo2SejztR1=#}pNSnaw?BQwx9;`c{{HE4^~PE6_+skH%zpX}&pgh*WZ%dC)A@~eyXkqE z&&_fRe{%0nsqE*IH_z~1Uq?SX>0bZ$dBBA1=gSv;&$`$DHNJBKi*an|!ic-{_Ve$r z(~I5fz1OGry7XR$-u?Xd=j~E=yZ`EW^S1x5pD)YZpZ9!CUs2Kh`R~umKRpls)qK*s zAAf(m|9ZTtySL{(UIlyH=>ELB>n-l`>u$HZOYd``Z1=m}pS{n4;@S7L_c(XT9)EhD z58mg-fBL!O-H!MCd7n4l@8!MEeA#i*TmF6g`|pl(>xVwz{(gTS@5*Jz<$^sPcCX*v zHR&$D?)Id+{HMp~(jA%4nbfw-(!1ZY=4M|1_teTPW7%aYyR4TzPvafWdFLU#$KgMH zJiX_`dtANe>F=N4mt>DSpPrW)M=E6J|Lxa5>;AqU*Lu-ic3;`kUFMB^)m?h?kzMOX zxIh1Q&mUIEejfeP`O;+iO?Q8XW=?RI?caOHU3Qr{Gjn;D`R+0?|2=nke&z~yxp?+R z?y_=vgS#v`ZHv2Hy6|&%IVJt2yZry^{q^qm|LO9t^O27Gc+BhdgS-5`=P7sj@8=`` zbT7YmYNU1kcbO7OHL-!a^o}?B4R7TB?41vqGp(`v^Gp4kxy!$fZ(6xO zAF18WU3%NMT+qq=`JwE1;>|aH-PX;$yz2H|?$Y~xz45|(T)f*k)bIa!|K9e$ZtI`j z?;v;i^{V0S^54&!jd3sE-F3XX^zN58|0=sNbA7+zndM*S%`%UZ_xpLrQQqTosNWQK ze;r<(;V%EX`|;-g|9qZop1Z%H3zxXde?AYEcCY{E^I)I4*Z+0CEAz8=zU!~cGrzZY zd6|zhKmT_w~7J zWae@A=KcRXPy5N;@0}A)y35|_v+nZ$)_ExJ_2E4p-f`03k6*mw7;nA5pI7kS2mk5& z&D-94y#MKa>fPU7ANilmALsu4yh7Z){Da|z-R01Q#oeX1owqFCrJQ^DzaQUU>t6of zKfcer?#j=r?r!(j@qJzQ=ce5nxXayL8@bDZJsP{que&vKm(6-S<}R;Vli82=KEHcQ zYxnZM&kHuqc*ec_jU8RwqjrU;4Z!2)Aw0UoBa2ecYnLADeV4SZ*gW`uyavnxhVUy zH_m$Nd*khe6~*1{rmraXFZ=uZ@9n+sz47#~b$pfC-@hMUW!|^{>HFS$zk9DQ@BQvQuHN(F9ankF z|I^p?U&mATyT9k|t`E7(ue&|!F3Wa*!d-gz<3BxK`sd@Ar``R3T&uIY?7p(QyUZK; zio47l#~8kg=2M#Z&?S5?O{*fbQAPQFnpVYVqb^kuT%0!QGXAws&9~PI;44%Vm!OTZ z_#T^9C26Bdse-sPZB!Xm2$!XeDyItL^0ZM`ayy#uxD~-yaXXstx)sA$b32;vycNgS za66jszFm&5<#sgRfh&Qp<90OPg)51#=XNyTi7Sn(b32;v#+Ai4a66js$d$*nxE;-R z?-1$xE;-R=PKa@x1&{E+VBm!DmececgFqBo#uOVRq<`yj^>+p)$r}y zj^^8UHSnF>j^;adHE~mJNAn%J+PE{fqxrU79XylU(P|cL_|9BidJeZ>)Liy$_y%1A zuANUCwSc{9zE5`tUc_EC->Ykgm+fH@>O;Q4XVgl*zi0S1-eYuHwWL?`4L+kj;`@6>t>N2yMt#h8_l#Q0H}{NM$M^P( zTFqP&;Z=?BEUS~W_zlf*PhVQR+!%JyyS9ixB((Fz5#Or9och-90 zUuna4*Lvd%wBeuR?28M~yk<;)T$<)NH3M)pn&-s~#C2(-9x{V)Guo)9%@F(yZPZt0 z7~V%4Ro*uoUr8HP$u|;TLmM^9HyV$oje65J2ERoc^|tRVJeD?UoNp{1Pa8GCHy%%< zjhgJ6h^Np-z3ZEVr_n}D_f5ewXr5o+R6L93`Snf1b7-Dl-wZsDHfo`77G6Xfwb(ZY zFQIu1ee>{An&;8C0DnO9c={IM4{4r9-x9ov=6Uoj#j9zaN8d8MhUQuGeSkO6JZruW z@u##=8-1(rCfcaYzSVdOZPZrZ8oZ4*YKLzv{+u>yr*A#pMH{up_X+-zHvAW%8}V1P zQ3rjS@gdr%BfhQp2imBkzU}x&+Nhs=JMb~usN=q!_-ERv6TaQ}7uu+kzCHL9ZTPQE z_u}7Zqt5#F;ooVa&iTH`KGP^2oBOl zh5Scxm^Lcc{}YbVM#cQcahx_P&wm0Jq>Z}Be-am>jk?%>8W*OGD&{|fFQpj+{bz9r z+Nje0bGQs`R9XLdT#jaZ^IyOfX~s9d){Jj7FQzYuS2Eo+?+P* z5q~k)=7OQG@+A;~}(BL;ZE}Fxsfs{q^v0+Ncr! z`gkPGSmAGgN7F{V<-Y^JO&c}V-w=#d@NU|uFZ`YG z9@_9*#e3CZmlz$*TO&j&Ae-J)H8}*xi2tG?2^}Bx(+NctN8Q7v39|E&*8Jh7SFb9{T`OFH;!&lNqRR}D= zSJ6gQ3@pM|(?(SbEWy=jqiO_};u~n@Gl6Be4$XWf@BzM=HmY9WLwqZ3RQhSN zC9oPdq!~8?Yj7jlsQUtI@%=R8MqoXDfMz}u_yj*h8`UhZ5kE{D)jY5nKSCSTBCr)d zN*nc9U^`CIMzsv=z>m{LJsH@E+t7S=2X^CUXvT!V9^8>;ObG17FVKt$fql3O&6p7Q z26v^6>K53KU!slb9yow|&_?wP9KnsQLmM?U za2~%)GhYf^z|(1?W(2g+Y9?*etbh;CrkM=}0(dUXY%mbQ^J!*-fe2nmGfxNuBZ-fns+7_j~YW9He<)2kYV(&HFl759iTF6%5wL7tux)3O2wO(?%5z-hnTnjVcms zh>Oz90fLS2rLuBZ-!B+Tsn(-mn8ds+o6M}7U9hxyA*cRVR z8)&fi!c5;8;9}X3h{CkB88V6~T#k6wO!>oP^(?87qQQ@S8MaMQ|#9o95UdI1Nvv zjk1F?@FbcsAvg=aOEV?}=iuoyV?uBqo=Gz%1Q+1hG-E<=5uQskHwZ4li)iKs!KHW! z&6p5ehL_Te3BeEW3Ysw?_#s|NGdBpX!fR;e2Eo;MEzPlBa1CBhbF3F!i$9^6Cj{5y zEwoXe2S33(Y32sOjd(ZB+#t9a@1Yq7f?M%EnsFew9e+bJ4g`1L{WRl1a3?-M8}(gq zH$F%kbtt$8AEu4^KDZYjp^f?>xDOwtId%wsgMX$ub_njrzt9|41`pt0X^tI&2k~z- z#}2{6_;;G)&EOGyf#zIC=qUElMg>DZ;Sg<9ICLCGXvT!l37khWCWKDni)hA#&}n=z z&1Ze+3@%16u~uV&SQiM;Mz3r@lX`kp^Zv};p3 z3gf$IqZ);Z;Jay~?g`%W-p>V}wu%+=Av9Ayg7SMjO>CR2n}) z8`U~g7C%XITo5XcpQbr32vxw((i{tfD&ps9-s7Q4xFgN`I#d~Vq4|6dRlzUOe7=XO z;vO`g@1bh=W!k7-p&B?v^I0FNiTlt-^$pd={b)Y-Lv`>gv{3^>H{(}n<^Z9(_%+(7 zL7{qhFm2S3P<=dE!DDI8A%yP3 z<7wXep~iR;%`rl#37$f8j1X#yr_#LlL(T9^n)iFCIi5>12MD#m^J(S)p~vt-nlnP7 zmUuDE8KF=s{2t92p-^l5KF#q$s106DGbV)E;uSPwLg*R1l4eW@wZm&@#)MFNyq0E6 z2z9{gX`?<3b;28Iqc(*)R(;{2??5|3EW;2o1qM(##)1 z!|*Yhu_81a|4cJhght|DXwEZ)M&na7V?}5T{*C6`Lg+302hF@9G#39!Gp`7Z$0|G? z>+nQuXyy{(NjOMz>=2%U!?aP6@Kl^bb3P$F4aaHDCxmC(ZbWlVBm51%hh`oU-jDC2nTLcA;Knrbknlm=gk~NRK8%~vjA`K`xEalHO86*# zl;$`k{1Z;n9H)ejnwD1Z11kIQhK8c^CIqwlZjh~_!-@<3`(=_8-_$+>w=DbJv z9Da^wd<&n)9cjk5@CDq3X5JFke&#JSV_n#XU!oc7!U5caW_$~WaEfMp3rBDtn(-}M z0QaLA)51~wD$O_+j^n{J<5;*L9!fKgg$v==X~wZ|VLXCn919o0qiE(c;bQm=n)yt) zIDV66J`=tizfCir375bVX~wZ|Nj!yS91EAmQ)$k1gv;V-H0MRb^9Hkk%A{}s?X6%Y|!Ubu@u1IHGh~^wf#c0N^NKbqP&Da&`g)N$~E7BX6q8Ym)eQ_C@u`ALam!lcGA_MT1 zG-Fp}Aij!b?1~J+SJV7GC^7_Bp_xZThT*C-^Qg#hT#aTP6&Z5zQDC znTGG98KWXIaATS=Dl!W=Pk1KHF<0a`o=r0ci=4o7Y35*&lXyPO94vAg zFQgf-B4_YonmJhHEPjt>?24Sj@6(K3k@I*t%^WOp0k5DL$09nwI7TyeMSS=pnz1Vq zz#r3$U6Bx8M>BRsB6tJM*cB;&KcyMFB2m1F=6Ed<$6IL5>qZLVZ8T$7q!8XoGj>G^ zXKt z%HpH6Q9nk?5&SFVKd68m2bZG-F*(9UPvC?!VVZebPF7pEDQa_+%b)6A)I?!(v6oVUqo zjIX7cU*$Bx*U`+ca+>1nY35fs&2V*^`BhGHd;`t=DyIdmMKiz3c?{o3Gr!7diEpBr zU*)vI37Yv;PHTJ%&HO5-4Zf9TewEV}-$paP%6SIgP8)ScPCI-j&9Pxldwdtov0+XJ zd^gRpVNNG}FU|SkoX+@un)AasFX9Ji&hzAS!!2q4Zj#d-kEV@!Bc~@lCZ`wuW=?PV zt(?AG`!>zl)SUkGxSRo8GM;9Rkuwlaqk>=Pi_Zz&K=5I;4`|)Qqe^bsqfIp`>9?U(6zo0oD z%sq_1q&e2hJ%YcZIo8WPiod6s7v=thf1o+m%RP>Nq&e2hJ%NwW9P8zt#6Q!FA-SjV zX__%4_Y6KmGlt}z#b;^8klb_l9L*S#dmf*s8AEa};0rWkNK^+ILuk$yMSa*uGloP1 zI85`rM?*N5=6q2!g7av`jc5UU5zYCcXcS*eGloRt_!62iBw7#`r8(}47Q&a(9QQ>F zDoWOXBNk#*=7id;`sR z5-p2s(Tpe2^7uxY@g!OS-$XN>L@VM1&FeW@3D>8Y|3oX}1~l`ZXcc@1%~%nwitnZw zE27o#y)^TjXbs$i=J+dG6E~xo=R|Ac<}~x1XdT>w=J+dmGk%e`_Y^?j<&!9Y0eu*AH#!a&KpNt;vqDD zYmTIBTqW8azeh7yiT1?r(~JqxUid?rF(KL; zucDcgMEl~8Y33x+{&*eDdp|k=Z=`weM+f4~G{;cUL3lgO+#@;!@1&V;M2F!$G;@jQ zaD0GfE)gAx57L|mj*iBMY33EtG5840ydwG*K1wr}h>pd_Y335q@%RMITp~IVpQITF zqLc7xnsFdH1)rfA2clE)S(>@OheXAUX?QpgC@e&B1<}^TV-uI70KC zrPu;ofabUv$2!79nEn~>@@C3b6gWUgI}OIu8Ez+U1-LE*g4#lW*mr} z$1lW)2XmkAI|@1H>BOV>IV@V|U&2>`|)S+6*TYtcsp#-oHL2H$E9e_nZ!HbGBk68cqd$eW^NGgj4RU24dO52N;H3O zig&}6Y0jC%yW=V}=Sku{aW$H;BHjzvpcyOTy>U&Nb0hJ-xDL(Vk>maG%{1pp;sbD9 zn(-k%5Z^{KKEwy%+i8w3;zRJAH0N*Q!|**c=SJeg@qIMsM&cuJW12Zbd^B!CGoHl9 z;HEU=N&GF`jAlHEkHyVt<`41lxCPC45}$}$(u^nZNw^iwcoLt2Thoju@u|2C&3F=@ zhTGDNC-E8h8Jh7VJ`1;_je0IV2e+pgPvZ0N3pC?Nd;#u4GoHj3;jT2}Nqh-@iDq6A zUy6Is%q!x{@XIt~OZ)@em*!X_{vqy9GtR_U;Q=(`OnfySNHed9ufc<8<`wa^cnHnB zBEB9Eqd88Ae}ae8j79N{cr?v1S9~*mi{{)&d@CMHb378?j>pp+kHmN2Ni@eJ@tt@I z&GATlH=as!Y!%;wXV4r^#rNVlG;@sjK0J?RjuHO`FQ7RdiSNgYXpTqX2k;V_^C9tr zcsb2EkoaM|lIC1){0L6doDYc~#UIfecf^0f>uKg2@#ACV3@sF3mZO zywW&EbDWY_7U$6%r{tB#7txGSc@^-*G-Fg=MSKa(7?oEE7o|B)$*YVnr5UgCs^H6L z#;d%l_zIfwDz6&0XvV9&8n_hAc$HTZm!Ubwn^zl`qZzOA>fnkr<5k|xxDw46l~)&6 zp&6s{>fvfM$1i#HaV?tTm%Ik}Mw;W7ygTqsH1nCfhB!eppUG>4Z=spbKG%{(Ws8NQe197tYsd_T=Okh~W70h%!??=jqr zW{k>fiJQ}mQF*O!3!3>)UTgdq&3Kj92DhXcukzaBRy1Q&-ZQuj%@~!}4!5Nlm-5=< zb~NKsUI*Ns=6ENs6YfBBypz`%ccP7YA&yhg|H$2t#xtS`cA^~HFtz67t+Me#a)DPFHH!|U}Gc!Rd^23-n&qRZeLjvv{w54u7Se$6x7=c%Oa&@6%oI*SahITEB$9(LL}t z`ep3s6n1nUykGaj`}HgMTm35jR=g`RAJT8* z!+IP(tS8{_wT-{mlkpM#4nCsa#Xsoj_y;``AJwz*Q9T#`sORG!^+NoUUW|Xz@8M(m zeSAzW$H(;wd|a=@KkGF9S$~92=#TLUy$=7PH{f6Nr}(7agiq=%_>|s;PwCI_Y5h4q zt#{#H^%wY8{Utu5zrttq*Z4Q>;NSGO_^kd8pVf!(@A`ZEyZ!;6(?8;K`WXI0|BV08 zzu@!w6h5zi#eeGG@Spm3d_n(#FX%rpU)(QMk~XDED{cH(n;0xuE$YR9mmWKIA&_$xVaI>%}qGZBygU&1s628;)3Qje37{wUu5pYh0I;J zkhvRQZ0^MuoBMHL^8hYv9>kZJhwvrlVO+#Kf{U0(aZ!`RMa|>5n0W#hGf(16%~SYN z^E57Qp2fw@bNDjzJig3y#Fv{F@a3ipzQT0HSD2S@3DX0YFfU`vq_AcB;F6{vE@@uD zrOd0ilz9!8HiL0#GZdFGuj4Xi1TJev;j-opT+Y0S%bB-vc{2`|Hxuxc#>Q8g$+&`f z2Ujrf;;YPbe3hArE1KE3qM3`YHuLe-W+AR*7UN3hJ$#LMA75jZkXJ-PZQ}zGxXU@6v%owwv6k3oa z$u?umOh{oYQ}#hpVaz<3%+_p{79}YuBuP?9DwWcdN@W-?N}K=te4q8s zbDwAY{$8)o+vlEh?z!h~=bn4-_qo$oCF1+4WPG-2fX`Nq@cq>B_VzMpy5I+?H2h$djvuTt z@IzDAY9M}uIuD<#2H|tn5d26r3_nth zz>iWR@uSpe{Ae`>KU$5&U!X3=U!ca}$EXSTF=`_ILREmjP))**Ra5X|)us50R1y9n zRf4}*mEkW|<@iffCH@jsjUT6`JU_(^IRev(>_pR88kC#$>hQ`AcQ6txOps8-_( z)dToT)f)Vz>S6p;wH7~BJ%%q*kK>Ef6Zm4a9$&1U#+RrK_!9LTzEnMrFI6w%%hb#G zGPMbRnc9rMOl`rJtF8EQwGCgP-o#g^xAB$g9ekyF4_~D|z*nh{@YQN3zFK{XpQd)> zr>Q;o>FNvoboC{EhT4apq4wivsss3$>O1`9>U;d<>PP$)>Sz2F>Ja`)^&9?5br^q@ z`V)VZ`U^ix{ez#S{=;9*4_RA64o%lJ%EDix-1yll9zR32->Hi5cd8Qn3RQ+*p~~@hsY?7^sv3W{nvTC)&BWiMuE5`;uEMWW zSL0Wz+4y_a9Q?g%E`F7|0l!M!h`&$WguhQMz^_(|@T=8g{QYVP{(iL-|A1PCe?TqA zKd4sVA5?ea*Qk~FHEI?9A+;L+ka__Buv&wESUrq?M6Ja?q8`JqRgdG>sweP|s`dCs z)zkRL)CT-x>N)&6^*nx^dJ+G)dKv$?+JvuBoAEVj3;qeU75{|VhJRAMiGNbPjbE?c z!LL{E;h$0;;Ga?-;h$DJ@lUHy@z1E;_-E7}{08*}euMfF|E$`Fe^%|sKc^1hpHtuA zH>&UP8`Y2a=he^n=hY$n3+gxg3+gcbMfE5CMfDf{CG`*fCG{WvWp3UW|0~so@xQY0 zuP8TulZwZ0QVIB1RU-aXm5kr48sImpM)=p%@%Y!&3HU9l34V)ehJRh1jDKC7ir=bQ z;J2#N@NcNr_%~Er{5I7NzfHBrZ&w}g+f^t0o2m=`O_hd!OQqxAQW^NSRTlnj)g8Y> z^~CQ`z3}g-bMfz}KKOT4HvV1JAOD^jh<{I=hksuU!oRPE;6G5q@E@oV_z%@c{D*2Z z{v$O8|B)Jt|5#m&|5%N~?^F};JJm$|C#nGdiJFA}R87HusxHOvQbqV(ssz7VmEm`* za{Oni691X1#_v(n@q5%v{O9Tl{O9T_{1@tK{1<9Aey^H?->c^0zf?Eizf?Ekzfw2h zzfueE`_v-*KD8MCwOWGzS}n!zSIhAG)pGndY6boqbvOQiT8TfPR^h)@tMT8e2k_si zHTdt;!}x=0E&iZ-4FA1)9RIy~0{??rkN-hEjsH|4qGv|4qGz|6P56|6P5AKdg4*535h{f2iH~ zKhz%lpXv+zpXy8e5w#D0MD54_r4Hc#Qs3eKR^Q|QRzKqZQ9tAVQHSvVs^9Scs>AsI z)SvkO)L;0c>L2`3^&j4)U2PfvYX&8*7;WKWv>UHDKsqx-C9Ix5Fps_W1g`1HQiQgiq96 z@QFGNpQO|ANjd|cth4aRx;s8a_r#~@Uib$3TzmuF2j5U<;~VP!_(pmlzL7o;f1DnK zKTZ$9AFqeukJlscjrB-;V?7#wf*ylEL660ss4vE!sK?=(=n42HdLq85F2Fa{lkm;- z6nry%DgGo~gg;4_;7`_N_>*-x{uEt_KSfvLPu0`$r|Oyb=K2bJbA1)Qg}xf!LeIvx z)N}AH^<4aE`Ud=I`bK;!eG|TwUVv|{7vWp$#rQUQ3BHY9if^lz;oIuv_|x?Y{OS5` zd^^1o-%hW>pP^Ud&(IIx+v_#>_WEJ`nR+e$O#K+XgMJ*}K|g`-sMq5=>ZkFY^agw< z{T#ltejeXhzliUmU&eRQoA9Z6Gd@*s!Kdl1_%yu@-&Mbf@2cO%r|Wm{>H0lRrm?|YWxH}8=t4=;Pdoc{6u{Nexkk+pRaGi=j#Rd0=)=dpcmskdI{d6 zm*OYsW%x;YIexNUfuF4J#!t~J@l*6Fe4$>AFVqjRQ(vfNI#A* z(of)v^?H1}%k?&Vg?UZ#!`aOJ={s3R4Kf+h*o%m|~DSn#Xji09X;HT>^@YD5|_!)X1eumzUpQ#Vv zXX@|pm+SBGm+K$#SLmPdSLj3dEA?;qEA?UgRr*i-Rr)XdEd39Dmi`ZawRW{*{I9tk zbzP$^{59H*pRMEZvvmUgTAhf$Rwv`<=mz*Xx)J_5eLVg;eFA>2Zi1hyo8hn5C*!Zz zr{ZtWE$}z!)9~|jYy3Rj7Js8|hrdy`$IsUt@bh&i{7t$G{wAGT8T9{yH62!E>{f?uMC;g{$U_}lbI z{B3$PeyJXVU#iFAZ`T*&Z`b4S%k%{NGCdK0hc3Y1p(o*&>nZr<`cnLzx(I)#F2S$R zW%w1k9DkRt#NVZ>@ptR#_`CH?{5|>#{5|?A{7QW_ex;s`zgN$}->c{1SLqw@tMrZd z`}9rt`}6|*YP|@*S}(@mub1HO*Gusa=w`lNV5cU^?v+w`T+hp{T+Uz{vN+k|A>EH|BQcLAHu(&f5X3^ z5943df8t-%f8k%!|KMNJ|KVTOt}___YjprVJLbr<}bIt~ApPRGBcGw^TgEd1NLJAQ}miQl1n;os5c;@{DI@bBtu{JXk8 z{yjYq|DHY%|GplCe_s#5f1roqKhPuaAL^0#5A|sLM|uqYBRv-XvA!7pu^xxtsVCrf z>WTPIbOHVoJqiD*o`U~WUy9$Qi}1U234XUO!|&GR_|J4D{xe;T-=nAF_vo4U&-E4f z&-GRKFZ9*;FZ68uUOflDSI@X~@FISZ=(s;_=E#z-ucJudQUfWi`NCRwI0@bv!=SIsxytn&915GklzNGCs~a z6(4W4z{gvs;p_ynsRKEY~_uWxn0*S9+16Rj@zL@N!SWToSitPFgzm4#2X zy5m!~{0Y_={0Y`r{E61Z_!F&h_$Jl_d=qOTzNuA!Z)#1#H?yYTn^~9QPqK>eCs`%< zldUrR$yPc36sr<{idBt2)tZh!)tZTKZe4+IZe4|MVO@=HVa>+3wC3PjT66KISvTNM zvu?z$+(t;L^dJ%;aKJ&x~SJ%R6Nt;ct?p2l~wHsCv1&*Ay&iulgf zi})_q%lIzVCVZ;38J}ux!KYbU@oCmJd{^sDd{^sje7f}xKHYi`-_7~}-_806pJDC9 zXIP)&Gp*hDOluE5%lZPJWqpZ1%i4!O%i53cZXLjPx4y&ou)fFluztk%w0_3-v<~6V zwtmB(Z5_tlJhqwU6QNuOstk8)u?5=y9|K{fYQd3~zAwo4{x|Dn;wiMsyG*X#UEkPG%D7`w@&yJh?~EIjDA9~ar_N-G!@N9ucGZ}FIp8(09ZX2zoFr8 zBctz7-vk%Gci`^{qsI05d&}q=bUXSLHB01gKBH_@glf=>Xb)tx2c>c~X z>W;>u?dVt3m7Q`fnt-lGH=w)Ghv>``T&_FNz33VAFG@I(eT1Gv9h>ksqS5(i5o+6% zzo(3DN1M^=W^B)s`Fqyr3UnC#hmJqRy7PKC{jP{_oRF|s~Z9sRVaV(%`P=l`Q zBXl;ZLRX?&(a3cEt~?snjeUbk(0cR=+KVbOT&^$BkxaI27HvRf=t^`Ky7esn);jtc z#dhZyL51icRD)he-=N>n@jX}$+K%2w-=dK{Io8l`=pWSRY|ejl4jPZPqw{*v7od&k zzH`}U=oQqix69Q9^+%IX1-cczgFZw5qTl;+tYmY}peOoq9-w#7LG&xC*Ps3eWuVb$ z_5l8#H#&D9$9@j`^*oLpl!?wkqtFLvFN!&zzyCdm_M-)8C3*tAhdxDLq2E#5V3(^Y zYKhK3J>2uN45v(6-p3C~8A~YRchdxIK(VuAINVYe+7JY?&Mb;?(hCTWKH5|>c zgxaJ3koyA8H|(ADsO=@}Yjh6kHJ<&5-k-oZ zfexeY6G=n4=z@H<7dnC(7SP^F^gT#Trr$w((T}KR3g;#IrjWLw>`U23$b(LuN*ht5 zBA2Tb>W1z|HRwe&yO_QNO)jA?M>ph%TeJp z&Mh<>?Lj}GnCa|ebS1hGEt=tSEknm$!SR4zKp&!gSF%3nUv%MB99QTHqgnKcsPomF zyXg39*!L(C%|o}LRVaQod8j37d@cJ2Z9wm!wsR?ua?pb7U9J^q)eYOdRNJLuM%I6l$&H@jTS?=p`trD{?K(OXE|d4^bPtQ-Et>=2)gwim+Kz17R9gRJVIxpM_18y^c!;B z$G$-mQ3<*nU9+0)gPPw@e~e~4K%MBb2ib?{Fj}*Qu?k9ggnkYEi|Va)xlTX{kMcii zg`PrN&`vb!an>LGiQF|@JJ2Vn`U#ioX7noBfp(+TPtrf3v(ba-8MGC(ThFx!<)D>l zEqWGR@s!Io2TgdI?Sei*U!z0lmkk{IsOfWTXVep2vyo+@<>vqAITldo7ub)e;w9=r zOVOB@+2-gnl>Q3yq9&VY8(Q)j=Ky*JrN8cS4MNYM?dUV~&{p!$@HaTVQQ9`nRdhaj z5N$x)Q1|Vet0>p}|0dUSH0y2Jh1%_)KSe{{VJw3tqgT-fXg`|sF6RZh%l!Wy=LZ`8 zKIc0+f*O86zkm*+Yd>+h7NQmCPgL(yuG454dI)VqgFkb*Em9)~nn*9h%;d^z&wW({-@8%cOUj>rF@qNpD8FITy^omt%;o zMw`&9Xft{ZZHduDU}_>SH4&GZNJ~wGr6#g6mWaw&A}M2upo}GQGM0$RSRy53iI9vX zGBTEkNH>v?ZXzJvL_WHScytr#=qAF^O=P2+h(<) z7)L~69Fd4|L?Ffyc^F5;VH}Z$aYPu#5m^{VL}5IUgz-cW#uGUhPsCt6k%I9=2*wi` z7*9lCJduF$L;%Kf9}!Q)Up$e1@kIE=6WNzSL|+P#d?`fmrLcihh}cUZQZL1&k%eNB z8^x&xMBX(Z;;sRab`6NIYd~aO10w1g5J}g72)YJD&NU!nt^tv9&54j}PGnqjBI248 z3D<%MxE4gdwIJfH1(9wh!tFF7+e}=WiDzp~1Y2t&*V?#RqSH_-)Ec!xZPDqd9XbQG zM`xlAs3YoxI;*xsjh?#((7Db;}psSZR&bs!?D1CdZ2iGb=zd(wx)ZHHccHt{J!mDm z7p+3~sSF}hGKfgYAQB~m2$T#WPcn!&$sp1sg9wuhB12kqjb3GKdJtAQB{l2#^dSKQf5;$RN@qgZt(TB0DmO=*S?FBZCNz3?er&h}g&= zQX_*1jSM0)GKk2?AQB^k2#gFOFEWX^$RyGtlL(7UA}cb9sK_LeB9jP;Od=;TiI~VF zQX-QGiA*9RGKq-DBoZQ%2#8D~A2Nw}$RyGslL&`QA{#P^XvidzA(IG(Od=Puh*-!X zQXz{7g)AZyvWQ5?A`&5s2!t#m53-0j$Rg4pi+lboA`7yJD99p`Ad3isEFuT8h#1Hs zQXq>6fh-~evWN)CA`&2r2!Jf!{GY`e|L(l$@4*}X9=zG_!5jS^yvgsu8~h%;x$nUn z`yRZh@4*}T9xe;TA~%Xd@u(h3K=n}~N2?#UbLp1i5<$s6jPyqWIF8|j|BiSEf8=$^cJ?#VNbp1f)1 z?-QU7s3YoxI-@Qq6{VrBC>?b}87LEFp|enT)C2X@jbqM6z0f)6T+~~i5Yq?sMcJqy z;(ct)05lNgp!3lAXb>8VhM=Kn7#fa7pj_f%v^Lmx&h5YylIP>k8VOYqXlRoT7+&vi_xuUi9R#t zHndcCh`Ajt(;Z{(K+Dmcx>L*wbQii?caFIStwi^tRp>t5C1y3cA3cB`L~C?v%tPp5 z^axsu9@S|vkD+zwaa4nz&|PDmMC;L0=xOu}+JK%#&!LUzdGrE$5xs<7Mz5ev=vA~C zy@s}+*U?t=2HJ+Uqc_o8=xv=Ivje?@-bL@B_t6LFL-Y~)80|!#pij{*v>Sbf_Mp$v z7icf~5`BgCp|8^gB9?{y=}CBj_*m zH~L3s#Qcl?Lr0Oz%7}?U3Tb4aSmZ`=C?3^A38+3wL_ATCN#+~#DOOfY1HLcc5H&)_ zq2p0wbOJgNH9<{LGjtL<8J&VoMa@wQ)DoSBTA|jc4Qh){NA1uVR`;0p=uFfBbwr&| zXVe9yqBPVMrK4^r17)HtbQbE4dZ3=@Y}5;#gU&_0kr@k~9Fs|h$i1%b|NY84eSrVZ zaWNR>Z)YHN@vUmZpWs2h?`+b~fS>a#Lf930T>aruz5#0ZIII`*t)%}0f9K1OhNnRf-%m8T1I1qikGd*^^I=NNW5U;9 zKfWAiQhtSvV_MWR>?&09FJ^Vh_lwT!$N>aAMdNI4i{|INqxEmOr3TMTfFPseL z#XKu~7cPwX4c->hvZ3MG@Sd1z_)yGN;TLdSjBaGu4EA%SiXSK(FRYgIo8hxDTZErL zkL!E!M}>`!Gr4V`$CU+Nin$2B7ITAeweV%(Znz_+@$sA&F_VR}gtrUV!OvrM!>?nG zia)6_&zWM1;gOgJ#J>oS#_WatTz`sBIe}-hswX@elMDN~E|rwIFh#utJ+Ak}e+`?e z%o9!edC=p!1U6Mwu%GKD;eD{V+9Lil;cw96ifdxn44$EK#ZMB>fSuI};ghhRYn%AJ z;{Oz;H05cWN`pPrc;V%+w^{=Ss1IR3*Y`r*%=l))RN+A3cwx2hW;j?q4m+#Yg?l9Z zcVXg5riNC+?!w{1DZ*L8rNT#rn}xez5A}!exRXuWI>Q0#e0YJHBfK4YTn~$XLHs+y zuV9`!`4pbOsuJN`SfzHtS*rc1X0Ee^!-V<5YT-QL3gJ58COA+14KGm1%?(>Zk1Jg` zKsZ)dEWBEHtMCEgv%)upp9>GcsVbp`;c2i+b%(Rm2-we6D7;#DJ6x!q6aTLG1MoIg zza{UsR2J;#8Y-M5yi&MC_=s?m@Dt(BaG{Dj&CGSGu$yp@Fkd)RcniE!JqkUpmxb>O z_rv>D^HwH34c@Q%!FBwuhBJ=enV9sigolOoTAP%Ug`I_cgrkI0;Qi`y@e73a3fBu? z7k(=I0Y0l@+nDQS3pm4-311?1oby^;3AYnL~9EBr>i34c+sXYlM^^%4$;9#?_*X)u-;5tH(&@FU^3ko&3jhPiNt>r&`( zT`627yifSF@D12h^ALh%HHLqycETRe;~FB&6IKeZ7cLh*DtuY^K5VM@!xa6W@PrN= z!+JzV-d*S(o#`9(IQXlsf=BgA7;9~ZDVEiRd9AZyiZu+jvhIQ%t?%HquAkvq)^VwZ z?S;MJ5j_T;V_he_7xuF@OZqN&mUT#2FU^!}0sC2*;)lRf* zc%gM(SHp=g-?|evwH|{*tyhE}NXj=b-}*~@Qo1SMMtC+Xv?jnKdYbqJu+-Wp{8&uOCYW!1 zDCq~_9oFB%(dJ-&zykPu9)ChlH;Q_rfDq zv$J`a5nCjjBU~X|59`H#43Fp^#mDwC{$ycSm=Zf0Hjcekcn>@&_Dy(1ea z(oT4ea5StJTP%K#@J`_q!Z(Cp2>%c!pKEGpBkTzq$Bq$J!jobb!8WmPz^2x2@jr=I zy-iAE*g19xJS%pka0Bcco6yJPo+9ib>?<5CEEHY=+r%yuze@O&aI0{a@JC@xUsK!h z!qbJ_;aRaGgqOm;v9sY3eTVRI;p@UZFef%9n{zF;H5?T?93IhAgtLT8g^vn13wH?* z3G4MUq_>9G#SRx1!&vJENxw(< zwD2wAJ~$)xZ#XNqQI47S4B@%L3xp-Y>x3(WPr~bBcL)!{g|V&A<7|z+1U9wG#9u3Z zsqi7;^YFgd!h>*c z+@MR$T;t$gcLCfO_l59V;U7Xh&ZH*_o58*Ag~DaR2Mps*8gJNImN%;?wg@%Gtv6VU63A=@|bJzGM97!XG5v zU0_n03)=}Z;3@HIg-;1z748u36z+$6-4}Tb3xwscWBftkZ$dT6q$CSZ6t;mq;>QY$ zV5_*R#4m#9#~(l0@J!evzK?JuY!x?2(x(d-!b{@+hTG$krWk*maDni4;r+12?akdJ zDcgmgz~cDiLcS_$P!Lg>S$| z;s+ENj)O16Z--OkJ`?|yaD1^zpCYV=HExr;*ZnH~t@!K`!@LCUvAh8wuVHuf~ej)xU1eP@MyhGv(0us7w&ae z!=v>M3I7(>yVlfZa#Ip+!>1(NEnF+W=7gp1~y^m0gF4Lc?*g?rtf34elTB}~2Euu?c1*0`6#z3!A744Vks z3e$u=ggLNP+$iB>I5=Ue_)mr3!|@3t=b7y=364)Ff_vSMiEn?SN$D!=4Qt${%wG36 z{9bn%EKT@c_`6WgH)T$QS0>yhyj!?d(q9w5NBE8KcQ`+x>?Xq*!s}s;dnLRhq20}f zslsz$je88->%L5Qt?)MCgTiNp+l8MAe}WGsT(-b)rtk(><6Z&BC!Da*u(`0K@GM~; z;V`(@y+yb~_?d9@B9lH|SS;Kx{7Lw)u-+}EOe0|nVFzJ1VPD};;TYj0VY%>f;XL7O z!n=iQg&Tyg2zLl~3HJ#P3I7wuEjDdv46jUBC|o9dK=_1kqwozlKcVlfhJ%D-;T;Jd z2tN}ZgwG_jSYnt4Tg7FIA1!{0a3*{`VHf-)Vf<}|)$m}#QTT7d4NJ{j_Xul*uL?gD zej_|0tbe;Hc?wLae-(TtVUci^q^}ol5$+UzC;Ug4yv)qoLYOAZ7LFE9fuAJI6y5?4 zCai(~CcFgqy4`meHW9XmE$c6aQ{z@k%EOYy7p?4XM z5l(`8-Q~i|h4X~B3GWuJ6>bo|BHSU|CEO=GB>Ybpcekmtv9P7Ey)X-&Q~wF!M&TQ< zRosWdZ-htS;QHzJnDqW|aQ!jxlKRiW()wqwH0dLSlZ4ZSHwsq>9}~VTd=Cz;zfb&O zVf?+OhGxPJ!d}8*u(bX}_^gxdS zsec2U8n;~hO1RhkrTB5HP3~l26|8ZaGVAL9gI`xa_I|_TAa@yXuRB9HP`Fw6mT(t* zq5kLx495$LVU2sP_Rt~zXKkZ*yT}^(nmN_I0?2%{7xA2m^q4?z*cdcgy#xJ z2n&SOFg39T9;yE-)QKMozk#jdjtJ|oGyW7|XJKz)uFxZ#22&H~!8VC^3ZH;I64M?x z>>q;(1RRe=)o(@e{Z%aqN1cw-dL(sc}2S?-5@3lu4f`EQ2*}lbe(H0-j%3v8;C! z&wkplzi=e1aTkl9D_khN3x1t=6mE}e_>8IHMEFYLt-=+;hlNiIUlP6ra}xV(Fg#y) zA^bY=ZQ;kluVIbbTc>)~l&mjo3g1m^BkUyXDI6#qE*uYkPh28=K)3j}nd(7QvQDUkVQjkHDP7k{1o939o~xNw)}>3)cwO3ttd! zhvy`@UNURc2%eMF8V*fbBYa6xK7#WT4@k;i!iF#N?lS2rI5lpO_@%;zubA{^!gjF6 zZE|xGtMHd4{Vx1Zn7GO0wt<%=^%4#cj)Gq&-U4$H?}K?s&0jTaC(ID`5uPu+5auMl zE&N#cHT*hp>}JD!;bkx<@k-%b;SzXR(n{e&!e@l93f~ld3TGvyyk^)^*cHxC><1Sn zy&?PpHca|M((7$8B~KD|g!2>6fen*}i_eD(ld6O_!8?;0zHZn|*bdgXdy5|{%okn; z*CqWVbZ_P9Q_@`FLg8Jo#$5y7Nb2;4VWzMjP^EA!tRi#K$8B7q-+!JggJ?W-!dF6EPxG@?|}0Y9})k8aEGMq zg(oFn{I;P-SOII?*TXZCV|N%P3r~hM?r!3r7rrKZU--H3fbg(Ty<_IBFKi0WPOgMQ zlm8T^ylZ@0;n^@R`C&LU?s=G#ct}!;-!tje!a1u5S;X&aMVeC#*Te9$E zVLM@}@Eqa!!jZy>a8`1OaGLNs;Vr`D!Zq;b;>;k9wvUGuu?czxJ>x4@Ok0e!Y_n} z;0wvtZo`w{j^s4RwiV77-X&ZIcO|#~%&@DlH>`1wg5M^;CHzRZPtyN{eQTfH{dT3EvfdB^>v;NuMmN5?&*`QMgRFTKK4Nqwsa%JHkD}?}Wb!W49x;{B8I`?DQn@>xEEng;%|~t`n5@) zE}RQ%+}_;#@HvT33A^k!{w(1Dn3wX3aGP)^ta1M$KH(dadz`Q(^dv49-Y2YqjD>_d zgnNa*!rmz*2MnhPuY)yiZ<`apH7#r`Yz1=?I}5Xf{e>fh7YPf6Rl=);Hwl*s?-i~S zZWL}7z9-xx{6_e@Fy=e6!~|gzn3vL8*iqO+I6yc|I1W~&+zMxW7>VO2^NoRxB(q+Bd45ne4^EL<&oTDTQ1O!-v! z3*=vJWnM`^UU@<9)Gn@`p6R{1jUR7ZwkNNss5C#X(sMy!<&=Sym1ToH6%~1tJr%tx zW|ZXjD)1KTe3uo3*e1NC2&g!BTpaOrxMi+XfMJ+qbQ$DG*ym)Y4VM(Q@#H>ri;%V$1 z+3d%#ivnejanqaf91!J^*E~?;2oKx*SPBj+o#rVYI%!hG73#`D&Au7pnI3t${zAD^ zt16-vOz-0AlUGrg-@8lj&R=wsx$j5YDIPKP}BHh zJ3XZJ$9O9Fnr1)EZ5x=g(l#xufh3p1fy8qy}B}(Bs zI>B0%M%>n>oVP0f#*Dn<0(I7Lic{qXPl2bbsB}iul<_ zhd^G2Kd;u|Xe(egp}z|cWMroLy6j-z+&gHqgSLOr4hY)p+@K$T=is%Upd|IpE32$3 z51z9o$u=4ZG=`jh)5}WBD@S-PtKu3rf+0(v897{*%d7K>LW}h^muXuHd#m4cuHO}f zr6m=iMQxpq??4LlIj)|)su)eVhS8~{PDpj-7{mWVs)}T&Vv_omR29>IGjL(5Z)wS- z!pW>o!N|OdslBJ=6;}Fkde0%4e8Dz7gnatDy`pjT&mR6PLdj^!3R+UBV1pMn% zXQA*;HDWu`WR2v!idx2ZA@p~|$5J-x*u^YY>ipk!fSJu~wy2vRP`7lJ5u4i8SC_xv zidK+*g5ur*Xz*a}9kkg&+dpUr1Z{S1&<_alj8;bnbLjIzCwqrZWZNckZBwaf_DX6^ zb`72G9XgS1o5;0IrFOMfYMZo81&(ppJmTXOD{JGJ;zr}DXl6h7+Ic|?=g4&B$;bbn(KVejL~^TRi0sah2;~{Tshf= za&gF`!wxwJQ@aNH>s%&$XKI8Ct3SW?9TDllyOZEmljLK#!;P@ii05daytfrm%hi4H zppA82JbYzL?-6xrzM)yvGXL|Hz_;+I-JsbdA@_Z@Js@ir7^#HRW-H~t^)Qb)Y#EGu zBIfzGZeWHqs`m~qedD*H;NZ&S`L?vJ{D{CfG~#v(RC^3ZQ=qKBaZzjak28ykq89UA z63u1KzcC^o34s9zyUf52z>X0Vku zi4ktg0ySoK^^F079c1sI%?{cDL7SZ$^aDbCHW%e!PCwfeSLKkb(24Af^w2EZ6qn18 zxoi_%(^4}+GP7+{{cKa&Ss?}cg-&=cdLfI*NH>?gU;?WYI>|bPPG;Mt`q`$u*Tj&T z%r!AM+0Qn&+=R0ke?1dbqbYTvVxRO{3*g`6+8wB;2ZtJ|AwHLhW4jxqTyU5XvBNgi)!F%* zLeh~O#*XmhmvTov!}o}wf8NCM!u(-Hd6nipi1#?pE-mJL$OU;tQ|n%ET^lCY!ef8a z(lxj(2IQuvySTZ_NcVN@!K~gvn;o?MgLXjBX6FVyRnj9&;lYgW>@pn!3mI1J-|Dr_ z_S9~{Lo;xunMB_;&6XB=J&U;Y%*-L9lc?qD+_R>#Iu2k;)U}`d>l3vt{=Ow@A%|;p z)bfrG7;M`#^ofowLw10F(BNMKhf^?YCR+z-W(9ES8RFSqa`rHwB^Z8 zwqGhDZi~QjqVLQ=vAXuCDHz^ahBwb~>zbLR9k%kmMcUG$Y`Lyf;vcK~_mWBT9r|Hg zGbGOp+5?LTq#wgwN1$x2-4b!L2WE(V9GYVO!#})XQ8q$)aD{Cv6-cku&_LyZ0^tK~ zf0gz<)XmpK|MRjyO(r9>U+Nt)5Xtb(M4IiSAf4L15eh*&AjIY}r>`6JKJGUCC~3jl zynZ9SHk0hIL}UlDgNMSSDAs6}j}xo9P$G%MO{-gg$!O3-Zv-(l2I zFj}@bNbAb?jqrlQO16@jk7xnLexbW9bg)SwCI|6ehIkJD`Rtq1cI?;=lGKdAfz&_5 z55ynCfR948j@*drW-65aF3Mv8Q%33wxyz4QVf4P(R99Cw>@8ErTirmryq!VBCZ+k? zAH7|HV*ak9?h5NVkGlG{uG!HMYok!0(+FB_;R4A+MpMuDa_=iXdR$)GRhoW-R9U6K z4OzrxP_nKQnj&>?>M;@ij!6`R<(bg@(4PdlcI4PrLN9_=N z&5F8LGtAgnwnNwzJ2lgHKH0Zspmzx5*SaY->HdMOt+4L|wxxw%TqCY-$nyMcjas(W zwKr;6Y1%Q~c=|U>=-4W1<IaOwRCLUfOICI2<)+|HLh`Qo({A=K^(|>@Z z`!gI?Esz&|Om2#qHrS5Rz`SAGxSLb)jLg8bsWvK!W~IGj(rBfkUH@2EV9Xk=4*y|PSD9f|6N?Hfri6}??b{;qqg!uNLU)>3 zXy~->6p7e|)GT{vTX(@acB84#-+M%@td7eQ)tGg0xS~X@)qjRYEfjiniCB=Y>(%Zj z>n`iqxkR0<&ZES%qs~HIvjSZX&mu!7x&5? zI_zf6qIElDoA%bZ*jm?%)U!h0l?1v5lk7iDZHc~3Cn1&*mu2Rbg8nL^mh@kyquj~_ zDm=!rb&gzVV4Ww8S!mt;g|DVaVd%bW`w*E#`ykG{C|2K z*@nLU8N4eWTF|U=t)WF|cBHN4uh8D?h=-|dHKLXB9*xKL^hhd=dI9ve(z_PXmg}$? zq7|>TS)vt{W9rzRY|z~QZP>&NruwL_;3*UBV(P2ne_MmlBgC=Ap#}Uc3{9g&p_8(W z{P(W3XmDvkRgtHc4AM+Yy7^t>fIhAY#%v*z1;HFMnxm(XP;!5XoRY!bSsXLUol2W( zhE{}CP%Ej_Uc$^Y*i+1Jdjd-gnJf}^}1;? zJ-V>GvMR4=a9;kD!V*tzejY#d^i+->EE~uhjGx;(S7r-N<;f4;OnP?Tp}B#MXwZmU z*RXO=abZ=lv7Es29%?Lpq>CSeRC&gamwI#ar+A9OeL zFgV6^=e`IT`MHEFsc#iOjVd<3o{*)5Oy&o3%)+I=BYGxS)bteog#6HnkarMLdUEhL zfZl1UBOW+VliyGErRC13sPq&Qw&VW^Nku0Kv?Ze9YzGAHRX`z=OMn| z4|%i0pSpRA$-MUNGbF=*1v4jwx1P{(k2j^(g~6K`GU)ZqXX{Ku77=nSa0O$CLJIhY zwBDoBA9wAYxiE>x!t;Igdh*DFO z%WTLI7Nr9J5$9awe?Q)w>ya}r%JCOvt|)Jsz1u2yd^*?SJ6%x2Lkz zYaPxJUxi9xv;NUbM9yV30(VcopIS#P>_2ZJe#F9mKtu^HFx#&7LL+ahU^ud@tixlJ zC?}8in#A&gVJzMxvw!?2M=&KM)}+?KA9`^M`7LKia>&6Qk{aO|UT~3t=RRhuc#|>1 zN_ojp?(Kj=f2zx))nJ(_iVVxE%%9>|B6x_0G{<*H2kHn3oMCiZYCiQ~ejV%!LiH9i zn<~VG#AHP}RD-4chh{Lv99`Zihoiuj8G5LB=a5yhJ&kcXl)PmpGf>SbkbyD(4X-M# z%;SHP>I*UVWd^76y}x1imGUp$S1e?*(D#8EU%_0tdt$@N|GwhkiM30amW(PX8_y@=le784F5zccnXp>|?f?F2LH&}n>Q#5afEm-^C7{z&s>n@V4SzyzT; z-c(b>`%7_Ok-$X0{C=ENQzVz)o9FTQjr{!5sz7bwiB6?_$GEQ|??}GV<6TTJ&)hpl z$}>ZISMLIEOME{Cmo4e{d=i1idGozz8h7Y?C7`T~b?_dW4#`Cl%w{WTR<&P=`CY$v zF26VF7nBzgmdZ^lx0iXWs6WrNJW}4Y2=kcwaw_~an5ogl{@Z4Ms;M_TwK}Yv$Jbu( z*w3_FT1x=GZ{Y7+7ZcJSOqphz^4?AMuBa%STtadCNqpaBkS|M+>8nR>-8pqi3M&ga5(+}A;VWFzC~0;9OFV{> zg~wDXx6G4Ym}kBRR6vL7|2B}fMWd&9muLR3MngQ)22>Rm@O(A!7^&CP@#FjC3@0m$>2EPLf+mswvbRz{$S;1>k_-wT=K;b3)*PHO1kZVkMrn$C+r{>zO z9pU->mdAD>2`}NhMucbhuMOcj{!2o5PVFl|c!>yodU!!!Uml(j-gAeS@%5SE84)_> z@Pc7IZFmt|2O6I3?+C+lLOQ?j%wy_b!e^tK2v0n}u*4y?cR_Js$*{bNifN_g4%q|w z=wRg(2Bi}{;WdseE%EfpD>5(W!!vWt7r91w2pjh}=8w!Pr?0K6l)n!PuRri0GjJ0V zUPgko!cJz^rnuA$xty~ZP*g<98BN*UZmE>saQE4wgnatZg7 zh53=oaMdg*ofbKNP+>{c^oUC^V;_E`JEGKSe+|hicG!z@LlJz+;an)!Q(4KN!a37d zL*SfnE|txeD=d+bmWe^)C#0To=aRmah>$z9!g(&!e>vxv`sk%fDxI^X_cKG-636Xh z`sVOszh6m#b4JJ@(Yq@nmgF7Qu@~-7f91SDbFTN6&%ik6k1Tagm*@D-Sz*nJQr2lL zq7=9H8R6U2J6fu%lxeoP@PyBAo>7IT`mZ3)xpH6SoHd9~r}3#a=S+Jm1HFrL;n2P# zLWv6Jbl)wtbEbWK${p!zjm9tbk1rUZ$_S*LKM8&K!6q;3@E3>l|yzt(X#CHIEe?QvDx39ONmP z?36#c*gI$ouWwX&VR&MnqSA?u8C-g~9i_jn;EFP+baKRkz9PB2!sdjTQd$|Yr1uPW zUYhsmkYgSnZ}T{3(DuLuB{#3av5ih02%sp~=rgvZ#o<1mVqNgZ4 z+52?_bESz;V34QUX}*5trzqGV-Q7XK>S55?;LjWd#nYP9K{HpI3G$&*vu9`Yc6wNq>Fv zFvz=i!V3*8FXW5q4(Zi09Q5{n&e>)D&M`dO_gW)7qjycYI^LPVLUf2=WRp8f}@LjPd1&c_q#9QE5m7Ho`?GHA8FeZiks^R zSB&uDrssFg2@D{^XOefH`GK}_zRRapBUI!YL)TGCM$&ba2@I~n+vJNXkSl9=F2h~_ zQ~mJFK~)YLhCzGLL>}JdluRmhn8p8vBF9_?IK;KcDA0NKT&_6mBiqBD@P+uUPIMYo zJeQs!1N-n&G92L3v*9`N)-F6b@a8%^Yh!3=xQO;H$t#*+ZUVz+4?akA$}BMFRppGF0*B0@ z)t+*BnZR=&hiv;A2BU%;ie^`Nzf+u3!f{Yq;#8aOIFV7vB%UWa)WV77y~p$2y*m`~ zkIEgg?9KJ>5VQX|j(t6!!))^S#39{YU8GVbl+KI+BIVm_35@q66(5#Y#hn9pDt&mq z!KkQ@c|q*Bsq)J5CKeX)mcc2PvyF#M&Uw-?4=XJ#qL6t;Q|GEX6fpNu4#`8RiYI#b z0}*|>BXGzzqkUG-DTfEp5i>`dL4C-W#bJKmkl7!i=pC6ml*=KC(`?<+D&DDb738sp zLn*m|a7woaq;hBAP>A~hhg9FQ5QiN0LM5N;_7p@e;vG;I&Xg-xJ@D8iuKNlRbxb8_ulvm`CnJpt&hm1j`c?G`b#O3A{m5DL+4m`~9 z>o9}7oAnMA1~5*UmN(;=W(!?TPRT@GMi&gpBZ|Xu897AAIxISHYCGiRR+X90&{quR zKrZBUWVEsoIt+(e?Ir#FU9`G`Lr90}{9`PKtiT}4A+L6~ZW|mql+P)vt3=4S#9{ux z`uWDY4n<7Ji+K;~ki~^AaFKDy9+p?mO&E`J9rCix8Bxv^(;?6Melq;h%*j2OuFzo) z=bh(J&=)afx_UmaSLsl~d%Nb8QIc0?ZmS)#`tn5CA=!U*HGx0jYvb*|!_yfV_@DAP z&Bo=itSE0rq`5;L9QuQUA{F(H=(z`VXdIimpenyIymhrUV0Z!V3#IUM-inrZ94ho~ z@9^@23X2OJiu0z{Ayp3J0#AW+uJ4Jax$uQAXK>#1Q6*F4{n`xQu%^I21|$@NhmX!P z$ynl83I=MgvoIUodz(9Yuna508|%9f4A1bs{tZtzLkkW=j(5lPFlVo01{VefL!}Ip zNAbddGIF9j79CMgHgXC>74ve)VN>-r!ARi^>(5gbPhdkwC^U@aGTQWSxCo`ZRhf~g zr@(vn#^{Haoe_%XR>_ZACh9s-rPECH`Kjj)EL_{wsWhhWa0yc*kGf=O%R& z4SB*6p=7SF7YpAbJUAo-Ee# z+Z3sk?=7A`+B;IQe*85Vb8be;H#bnhK`H%v_!^Q}M~VJ<#f3!w!2NS6+BhFb+Og%!FE+=ozU-j7i~W z3P$HhmOZ7+mT%?=2JA@jkV))Z3v*gS-{k9zBKR znjrm-u-k(2sKOXDP58J%{40EL0wyi(IwqgB=A-}BfCl&jaYL;LRjFLvxO7j1a zHQsxezrsT!rJiUuhs;+!*Ekkpo*AmP(YiJMck~OTA zBs;HGTC}w|rlPe9Re0a``WtQa(MbK zGybZ~qH87DTVmgt$5gadp%PpCn>51r(A?bB$Zt+UTN5d-_C+^RxeD)J1PrUY_WW`e z81isg8fFWzlWl5Gsa=UZH(vtf{VQYkQlPW&Cz|aYmgv02!-{$Qf926%nOTA@rcYXI zPpREvdv0-PM4)Ve&^Jl`<(Ni0rPr?8sZ42jP@#7@{un@M^U%PQS*MUUOrcG1NUq%i zhav@GQHicn+tTbIiPD@}Nwt?!D|?zPrcu@|G>lPdv?bK8&z8w6pg;tq_m~U@JxWy} zL6BS=0|Ajz)&yoqAu;*2#;KBMHn2lbq|D`%KH2=`M|%LJcaSKx$u%xeZ*DM-QtGQU z?T@i^6)>QbnW~F@{{;?q-*iQVJtd^ofg5EhYK~1`v+WtacH0yEqdl2J<}dSq(@>`5 z=!+1^DQgrd%+pm6X)aS`=og0Bw^M-?R#0Hw@4+NEZ0uyDv@KBfi zisA3QW$xflr(`nE`)hIkdjM-kkpi)Wndy^h=zvMj!{h8({h?r^Sbc*8)ojF>5S>#AoS22OUJi#-M z#Oy8dlt=`v8Gy=rJXuqJn5(QX@gl6fmN#Y_$6J~wHn5CN-DsQ$iCdGdP7|5|D_u|^GJD>cUGjt#mSX@|Q=+Gw6=%EtkENkhr-o-iJq04Ng!CB16fSxx{ z8~0`A5r3c!q0_P>y|);l$#N7rB!?&Eg;Z{9r2p|=pc%FhYgspYiYGJ#TMo#OAP93; z&~Mur`ZMT(#VS|ACNpa$|_YTqwBJ>Wh3m@Up4u7WFY z6=#E~a2zB>SGXIv!p$vS>oyFvEv`{8jHKfH^lgLI0q(w13mc*=z)t#*c6?mWg1hm%(Rcu zH`!@ThX#YcnM8yV9vQ@=<#;!lFP0kYkxZ3k&CXo=W5j^GJYp`fe33}&#*C&kn*vWK z=CG#1B<}O$3xnEcB<5BMlop#+AJ}Io5e5JL#(bz=9PNwI@z^kX_RUa~QcuY~e)=fj z?ssw8xluJa0D}a1q#JKc(n`mPK3cOlZC~H)-q%mdYVXl5oS^mCduKoRfcJ!k7`+~T z?8JM$^w@?zT&Q6>9t<@b{}U$3itKCr5TD-;3lpUHW2f7Wchf3+h`as>AzSNf#Hrc8 z8c*a6lc)JOG=AV1qxy&R9w2>)`Q#Z#6fc2{Qn(#8o~*WlhKc)6o;^XYRns1;5aYV2 zEZUbq+ZIAtL=6VtKGu6=09R+ibk6qHd%sURk3!70oOFR7rNrK%=Vm~ZP4D< zu*S9{XTlr(S_&%nfNu5DiWqtIo(jnIiz@+bvUP8<$iam)zD|(oL|%Sd1$l7cn<+pn z4tc2sWag6QFq}~iE#Nn7g76%H;0)ixqS=GWP!&BKI(kg(4Q+WtX%UE&UsIT+C2=(T znR0qgZq9_*MGp{3f(+0@zEikhPGwu4evJn8B)~LTAk*PdaslQY8|1RrN9Da6G(t)u zM=!^3=vQr2P08s}WpWz3Iy*<<026zaxOtrLCOyZ8c6g|JF4KPMRG*i^1(9gU+Bn!e zptIsL<7$^NL|oBtA34o?a)SL7Gxi;$B96!*h5_j|PBR26QY^0^1T^AEFu{Q{Z}65= z(WWy!prUt-f;04wCCaZB0mKCjV}bF2?V}^T@@^3bA`s8$PKOjUO~jY8QK)_M2>IO2 zN9KJbkkA`CNaerGhj~>9n7w9P1}+&y|K%gll}}52VF~q^l49>Dp}?|1I#m5yaVN= z8O53HD8`z9hToh*E&&ZI?T*{L&EacJo zGbicrTQR(=9NP#v;H@zfBv)K|Lzkx@+7@Ac#JJ7Sf%g* z@4TUMchhH4W>HO-=uI{dMj$nRVhYYAkKQf4zT-#rmWm#@TM~2mp&%5jVq*n;q3}fD zZdy(RZ_x$_d1DUMnDD~BMF-}h7{^BxJUN<9+TIe#6O-T|y=;0Su)DBOqL`M6VVG|L_$3@b(FsP@fVZ@+&)}*fN8YEFQv>=rA3n z6G9^(k|RVoM|kJQjBa}5X2WGSL$E3+@-kZ=d@8jg!B6nHuv1{YTISQ+xq8y7S%lJK zEL@?AP?cX;N+#5cJ3fV;fBPxQg!&2WAO@VGI!iNKXc#IB?)ABzUJ~N^N z;dF|9xDkPQg5#b)MAFnV09PwX+-y`X@ zQl#btil}fCNWw@*o_a^uC?l;k5gK);T~&+_=nbO@)!9H9ZzM&sCJ%&goE_+Rhh9h^ zTL}wmuX&bXuh|5I?|r~xs9R2DmN2uR8LTOc3rK+bdj)Qt4tbi^-9VE zi)G&{7W?MzPPr?lqP+-7?;;~lxwO7AdAL0Pm1PtYfj;tHY7Rb9k|(Vy|2{LyTAiYM z)%?t!eLV+-xf@=%U{@J*p8lA2!1Fo0^llr?E_n^ps)ZZ0$Q$0Bl2C$j(^Iy$-ypRQ zSER}WzY`7;}$fMc>2Q@IkFx{W$i1FRf#;wujFnurA4Oa?xTN zMYnD&Xupc0JpfaisD}tB#-}Bix8RF|S9?#L?RF1pf_s0iaI&DD8)PM@nto7nWbS%Ac@8E`uVU1A7 z5=g}nOcfR-KOH6Y0zL{I@IoGHGplGSLOXlLC2+$f3;`64y5zKVII z^jUNtf9-`=a^yvXSI!>qW#T>mp#R->-!nH{49%eL5miDzLkaqy~2fE6QJ1 z1r?tf0RmjmyYZ*Z>krsDY@%rInVIvHHjy7_eL(i@ZIRP-n1j708NU67 zeH%4tZ}M-SKGH`{*d$>E&Fn3G|Aa zx}@#@^ecUuY<7IX8n!0XR*RSn< zIn2?nZ{BQGDR1n4p(UhyOluFNx#arsnZuhst6 z*jq^NyrEN3nLf-#D)5kxygSYjIo}0&qS$->88B#;-bR5;9>67Aq0#9sAkg>6-G>fD zNOpkfuN$-M3qBD`i4-o1AG^qGDvQPC;_t$GtP@m>iH zS5mL&RL&baPXT_mRERT18>K(QOW!gx&D#kLG5 zkvf!P<~XW$f!KaIBa7>@F(L%H#Wti7>4bL_&)|7bl1%Nwm>i#bj5^6>yfg8fB&i;gfG+e-#*zN>A)2D9vvU%3#;tRdtuIQ!6_+_f2ON}3>q|a& z2R!jUJbTm*3h@BjQ)cPW5z=GVFc;WzXYvRq;jP(Rko4Lzg-g62f)4qiSM2C(e%;{~ zgro>mkyCtSb8_v`7c->u;wbg~Nt}E_Md5THyCI4~^tb8rlxHMDqKMG$J2yy&*(+^s z{q@9zzD?4eGm(wfqLBOmU8v>i4{?vF+8S0SgoO`OIsDaU;gCa{* zb^wyn#SqSI_J+_pCGYb(D$7t(M42SBBP5#Rx6V@Q$kh#t4BLSsK%n!S6j)z%hu?(XoAFBTPB^fNT^ zZhrUO{+{C$!pqlS-R7)aJWDq%A#q60vtSHn+_}Nsoptjj_@TB?^w{5dO6`?6gFO#Y z3@ykZ8l|Jc(0}^gL|iiC)(Nyk=Q6n^4D-od8i@kH}`)Qba2$PBg7BXPnU+O@eW{K6WhOoHDfjZZy5CACZQU zx~5anP}|xlY0ZMx(J?;DpR$IUHTRK&)ncuSrt6kP)5s-Yf#8+hC&HN~&0$}BLEqCn z)B|3LroP;)$-TQ*B1yD!L)AnjtJ_!jhC38T!=Yhv#UqC|S)2)8lie03IP#zP(RZcD z@_r1ugU1KVm2vk{unTi#NT^$`w*2vO;AOSsvIo8Bv8;j6Np;OR*2Fk_^~Bm?uM<=J z1~|Twi}8uAobD-8as`nW9g>M`V4Iw(re?_muj?<1CTM)TSr|}vYkPp5>f)qAiO{J$ z^cE67tCukyK82S-t?!Sxv%V#YGp;Ih$yC-Zv&K%F18I#QEZ06=ky69EUh_2OOmHCV zel%L$^1xQN2O?uRIFQ_SI`vrRN*=k<%!vaw!1}SbyrN4^uD3=Tv`Rg{UlrMv#S z8=)tF2%G+3#Ni(wu0rqXT!kjCns*nIS6un=6&y$yR)IS$h!#3@L8t5{0@3Q|BAXYv zib~#vgl0VtFf3Icwz6DLSM5Rqa_**nZ4H*;%Ofqk%{fVWPqQ7 zMM4SlkV=~DRL-GfVZ>TFq=#ZIS__q8>{BgcW$cNoL9e^wj`EIM72Bx~VC7FzI=3w4 zx(8ZPu)6if6s^JapQZ1ExdU6Hi#7bJ?7?IGYLcO7UE>ti7Zw$HU`{gz^QcUCRJUv| z)h)Lf6D*t)iw3J(Ot&P331$Buh|Hzg79D<#U6za0x2c08*mV!RrD-;vWupXlLz8Mj zA%A~LZ)75(_2p^piL@|k9E3^#)kC3_C)rYBcumu>ev@v`phXeRut>wod|n%^!wI#> zBv)!23UHKFoVk^aXi0@>`d4*@*2B*C{ zU$QhT=}U;FPQAQlAn1%fA{TX2m`2-$&7rwGJ63m`L#=%Jr{*Ge`P38P(F&1#$?MCO zgEJy1vnv1slT`-V>28K9c30sR58jXBk_HFO6#0D+T15-ox`@1bNN;`Gb(>=bIYW=w zkM>LX@){xDS!fpGS#~mpgaxpMgOAb3wb0QU4DOg?qxtS^-wruM8Qnl-C7qjW>q$(b zvJ>%W8>}&~^|3S2yhqbD&(Sn4n+Az@8Z(%Tfi#4CD$Z(lx*~_YHrrhx2ARwt*<6M% zi+YQ4bUer(l3zAN;aVDXW4~FC(-gb7at?89sb+Cb+%_L5U=ohvJZSL3Pl2d7IUyP> z`3OHB3e!WywMP_4gXBG0xt5ShT4%1Aud+uKW-bs3Cr?Z%)_{Bnk(DS!)+*Y5I6WPmqwpp zb~_r$McXsPBi30W4L(m))PQRvLu21$40R(0lF9L@IIDf$Rqn5{CFXv>Tx9OaiWq@PR(Dhl9k>;=~?Cy5IIw#^2zdsf0!65r{5xnwiO zHwTZre@yLrqnA+m10U+y0TTwVAEPfN({n!=nr50tLD0!=d(9pWOeQ`2$F@J-l}B6p z!P{MlLSu*BfwXZDdkWtsCSLhCTy>_S3~14rp1#q!8kQB>`N}X$Lrz0SjpovG=r}7q zAfA~14cZFCuhZFAINfz*->btp6n8hcASt=CePvU_$H495CoUbG^x;|QA^J<=wIP4N zE1FblROiiPhg0mdgRjq&r409=@xyOaX$L6)9@ie=hd^Eu^W*_OtqXD1LSrW29%*Fz zn3qQK^zQwt?L==C66^}`(vO?HWROGX)a68uyF6cuJRl3&Pko2C2Ok@NgxzuZ=-Tj( zRtD&pGde~eR3<7o&95pOn0q4uJ}L)wXiC-{nuV);;T=uM4UTsnP?=dWc;#cT6yBYX z_qhp&HnJVyBlkro!#j7yRC3}yNX#XpCg4NzQWayz z`70mWv9C%^PWeENsf^Gwd;UHUG%y0u<4|?zf6ym9ao$%>b&J$+!3a$iV;gbk^&mIH zgv5DFg^%Dl3+q4}?T*ozD&m=`5Fh+73UF5WvH)r`m+v3pZw&-A_p^q`?q{}cqMJ^& zKgEse6Lq0oG5nDM(FAi%Z=(U@I>bdEvmYY>T@<_fK#t}hXN51WnNJ*)F_G`Q;p~yC z{}ey9|K{0a#PaKL`z(Xt-Tw!4V1i}A?n1Hx$Ce~oK9Idh;L?7H0VM8*3c*%bkk~!5AaOT7TV-HpXU*1H zx5t*Y+w;ppZ=K$MqR*EXg>t-Q&*-(t%V9=d?mh^DCyxfb!SUc&a5Cr*f~VdKjs$1u z?pwiWLW8G|(%)l2w@E)vsdU^y5PZFdsA(mIuK#}UJpFfqQclvp4~X)Fq25LJe;Axa z3A=)$!6`}!p5U6Eqw)_1n;v_Uu#-d`)VxiB=_ zh}YwkGkD@vD*Y_sBd<8*F0@$rRy)YcPp zN3U7YJ-3GC&N2@kJxEAT5PaqLg8!7T=ZKGQyQ?O;|9bE){eC<6)nG@k>4}3Ru_Kh9 zdgZa!;8l|SLDGj;i9fCny|wMP=p(81 zIU4*HrI0p~Zpl?E)!9$~bW1wuo)!R!A8tRDw?AybKH~Uy1L6ML!LJ34)S_L~j&BFw zaBYjyd`()I`jg)y@^1vcNg00C5q~@Qnuki}DEiC6-r&n5rmqBtg5L{%g?@jP{x#CS zuTj-sbEQe{L&WszIlde04qga$;`hbid)xufyh@E_wP&%uMM}z@%mX4&DS|kmJ-LrW zdX(r{T*1Q-{xhr$++{ojIqe;E&UZ)!J4qe5j$;829i|FuUZbmzG_sAUjuTx!b(Evq z%8ESTV^1F>{&+x3El23OmnecKrEA$}^ir)_84UK-S19EasS*zWR{ta5ht>BWI-lvt z;B4bz&x7IPpxsD@2EPzyqp{uGl~ZPuMGx{nl_`@IdAI zgQvt8b(1WQQjVaeoyt2(^*e2NR+qew>NrFEv0*@~pRr~jmh$!0^6d;7oB@gD+`5mr z5fdPM9Hl;H>7FET zR+|3U?@~Hk0GT5$jeC=gknLlt>v^tuAb5p-`>6yvUyO2SeeZxIStnswe_iOmMRzP? z=C_}&KE7MN*URPm7IFLmamEgcWqz0XpM9I!#14ox_JcqqAf}ddY^!b?>!e^Y9ewIG zs!zrjXvoBd(qn@wuHytzu|BfA+3f{Sx6m&)W z_6M%_Srb1%{{&xQt3j{fkt9RZFOl^7F_z5xlp~-K!+m+u$RK!PKi#q8W{vmd6FkK| z^&$OZ7f#miF{{x*O$Twuz0PIAQEh#Pda~Phs=KAdJYLu~*l`oLG|o|fiLI@Se#u3L z2s++iP;e~iW(JL2z9FvXUWHI!w|_KvN2 zK>mX5&=GJNY<-RLFb@a72M24xlYHF=`O?UHj9bvhIjNUek0c~vy0_?#gOW4USHUv} zQ7X%V`?;GOay!ZCAnBh3JRG8&rIH;^8p}3-$2!&XW#*lOIF=HR+}FVwhiXxX z)`YFfamq_mCY0gmw)KGr34*x4SWknOc+4}myQo(#P!X3S^s(DOmCDM&wd zrVLAGD6;-8HK9Di-y@3hqLlpQ)2#@(6jrBGP$xEWEW+mz46xA&<82nEm?{|>&r`Ft z$&YrDaIiW}$VKqg@2=7sMfYppy-U4{_LuJ_!Qe~Mz0XlgbO-+?$-ap~wM`FwgSzTh zD8BBX?&}PK=LSeIPLPD2Bh?L6>pAfL2h>|KaGoQT=?*qg=@PQ>kbDk`!ft^bDG$I+ z-{9IgJmF|LRHEmD-=`YbIsOK@YBn@H&^Y4nr+}8F|2~!05^Q?cH)fop0i5v6hfOfM zj|R%kIGY~sFRqPIF*i(khVG71ecbyE!Bf35RlI zQ0Ols!DH=IBeyC@{Z+Yv^NTR7g0I+y#$zr!1tlw(e&!ch2y7kKYFnNsy$@&SBpPMv z*~qh7B~zdJFYZrZKaUxW&VzWkus>&i_&f&VY82FjuknCgjmDb6ApNELYgTz5vR*!B zwPvkFIIJ6M70>s`rvF^jU$ukp6$(e*rtV4(WrEbd{k(}ipqW0MBTiaOCv(CLu}kCi zjY#bCbV%o!_h;B)@wx*q3bBJ^QSYd|Csp&?! zABK^qF%2zb6eQwC6!_V8D7KL@UhSPV5F|DdW&)b}SD!Tv=Glx5PHlt8R;JST*N~sb zu$N)sG0RS%l;4Ybz9h>GZ2R;=pIiR><#5pOgo$H1pE5}OfA`nSjW_hk!eaAn#T6>) z^H}8&>mq@l7E|z82Ntm@4E%B^C^pX@k)PxlnMa-acfZ)8;t6jzO{_US_8PwRI7LEY zT&-w>C)tehM4IyislWa#izaNI7`yP^HkZuZ)88el9~A@RJK#~QDC{IKNd4p&MI=Eg zdw)&2S5p|uo9uB7KM&9o-r#9|=<^&sVfhaIlSe$i#?MLig=2X?l$6&3`w@19lhL-PvJNCu-5~WJ|8^Q2ZK9}S6y?3y2cd)1(5BR*Y$uA$*?+$-n2s><`b zaDj)!=uJVtj%bsnp#SJ^M_GAYmzRM8S~6fYgi$t< zP5t=(1aYq_yLLas7F9xRQtL19%#@#t^E!q+|F`BQc#NNH;rZ)R{$q$BecN10^-;Iw(-Lxj(3g(-z1@P^h3{;v5}4+ z(7Xf0b}fyL^h*!K7#AZigxHahr02ntJXY+u3ckd5JWb*WP&jg2dityPC*;3fKgv%> zc#P$L6@74VuhK zN!Op??W^w-Li=Ip@xO_@)8D?o&RKtV7Pp=v&Nyy0ZY`ERTo`zs?7S6>lpNl3Nmf)m zD(rRAsNnRN^?&NSs&ujTVHuxWH~Z-eKiFoSRwv)B-}ARBGfg4BQWcU@GcNmcpDuHH*Z%DR;wwMTZB-tPj*`g^nF z#&FNan?wGB9vLL!&vKx^n?ZT)mN$a4qqqJq_%f&RrtR{9Ly-Qh`|J0=yHQzGEMfE& zO|b&IThz9?D5;xh!{2HhLKL*k@a~;Lbm=cY=$5;6OR!a*F!Dxb4sWsdF8v!11g8bZ zk5j@o0{D@C_&x!T2-!Vsgr_zKyh=i~JB)(|LJh4d8;QFKmF=+;p4yglkn~j6p7@P7 zzcYgL^A9vvYc6m7etQ+|4bo3O5LhU%;7ei+`4Kc*LaTx9mAqfv^_QqWUz?}rwVOmi zrT)$5N3VjX>`ZVU+(eN2;r%uKUPI^A*4N_w8>FAUKQ@2S!dAPQ6ns^zK-|By;n9!0 zR7H#754?@<(%IYi4ml#QuknjA9BA4%0`>Mu{eE3=Oy0ZXz4UL>Kc2YBf}p%V7Vfm? z_blI|V1hT?MBg_oS31Al*h}jhLHf*t5fFO6=S{b)v(R_1RSDeYy)W=|FY1#I(Cdt} zbn&Hd7Zh(q=Z*~@@6t>B80}6H($i5tZr)w}nlD`Y5?8bcrcRmNMbQt zaRpxp#mFa=e23Cb(^hAGQt}ymwMXyx{`n#fd8|`@v5lvN{8FI^NEX|JXF}nzCy;0p z=M1EueV}t%=OiApv*Tb}D7bLW{270x@YB~frB7;@vZnD6W>!v_0)B@OJ~kpO#>aOMf62Zq4yQ@uY!z}o7q=A}=rY_BrFA3z&KL>dvwhZrAF=tf z>Leiq&m4#>fxKg9=%4ME-G5#|tg=+GjfV`cCh^;Zy(AudX5#ZUSUyM+Lh66}#kCkg z>Ie7NxO=tjtE+C1`VaTV)@RL1%R419>c~E;T?M>LpAUEDMf-f-kGNLRe9pq5#5J4y zJ;Lp?W^KZi6|>Fj^JZ0~!`%8u>fe99yp39=_`In;_q@NBu=VrR_iLK*dwVD1?__`O zCecanatDubtbuRiJy-5?F#9NWiGA87_|NYw{i}2Tee0Y5ZU1vUfACL#++M&zZ!7>pxO~apHR?RiZikLJvkX|Eac9h{Y z7;B6amTL(M%eAP&axExqrz?ypZDB@$J0B$_d$u<9zdYWsc~fobulVw@VDskM)KBRD zCs;S2PG1Zv9%uF2R`ao_>ec|)n;&7dO}`|6zAk@$Q~vCeKl}MlZTbxo;kW7UH=m$e zD)VQ2{Wz;)uvH}fLl>on<))Y8%k-nlwK+ANb5*U>!?w> zB2BFlWs#dFjkd@g6Mxbv1zBQrvD|=@PG-&yl4dhVn(feN2J2m5Jx!@B5YwtIBpuSw zp+~u_n$-VICWwA3x%$I3sek)09c)FvY(oySbxQpWIP2D&A+;N2_UJNuP)e`O-;11m zv7CLt`(t=Nx@16bwsR?^11VHG0FpsP0(cN`Dhj6n=NxRtbq<|Yu(0XSR8%pg#sY{- zQDRhELirOmtv0n1GMrig$plEwITFLdIlz++PD^EzfTyDH6yRwGn?j}mpLejS@;u-f z2OH`cG~|MXZL7iM1*FX;rp;=lOBtn0S*1%s3odd_>Mx^o(wK`#x@3}2&m}-}8kz%i z8Ia-hGV6ymvQYn&9ylp);H02TS2(|IQkA|zy;neVHHKg1%FTdEtw`HaE2eF!6|i;< ztZ^#0(a883lI8&!uIB+=2V}bQI-naGx&dfGXIucZ2*?z_2w?J}RkpR98c*Vh{eJg2YyudrvxQi0kfjc3^@(ZqEO2XCXN;21 z7)40WaB5*Y=Oj5AB^UM(Tof8i66!(NP}l)TWLMaM0va_{Blnx9PFNThS+Nf^%0X zbC`xXEVO~7U6FvrcEBA`xC3x!6z*hJZD*NLo3^7ijZs_Z;!MPW=`5+e3vE1Pl2G#@ zK!-JS7*Mx{x;c<7^f1H`xCC@fejuA}LV-QZv+Y+7jhn)tF5N`E<|0IdJcV8<)KH=V zT%)jFsBB+YFL!sQ*QvcIL#7wReIV|S5+kjjyUcPWg(z*y^lEL(z;71@q##S|RL|5l z03{gIM5qa_xRA13)Ml1LyOUW43EXlar$_+j(A$M5TmW1O;YLuG(Ao(L8%ZojMI$v% zfcRXL7zM!<7bb0*vG4`B;=+`J&6t2IE=-58Q~+08I3I=KiVHI#EWFR4Nf#U}R=;oo z@T`MPm9t>}qJ?cs!Td#}T}n*5q=rdmS!`Nnxl$%lnPq7C9OtAyl3`-{2QImA*(9N! z%b>oZp(}u{3MB2i8q>06t!2xemMuepu5o_bq$+)bdar?KK8C~D7OtamBRx3V!VN%1 zayP)@fe+J*xzakwIe!zmAw&WPcw z&8m<*i!hH8IjboWt@_y}qSLJcz?>5q6DOxtvxJRV&ze9pYXi+}ic^Q{m=h{p^wn@s z=ZOQAS#jXTi34|NX}xKwAr^7q25i=YXuBo?zMV(ta6>4LfzY^R2SCyQk{yZ!@D9L@ z4i*g^ZUns3!KRR%fSaN)JjQTy6mAA}i-S$sEn1!fGXApz)R(-Fk{y6N_i!e_O6AlLYqn0%`?hif;wfrm5NhwQHyyP=|&(0CnoJI?;kIhOokwom6t21P5KvoI{p` z1{`kL^HJH1|?zwJ>0K}fWylV55#cz>fyl{K8WU~1h)n$b4|;X zFL;9##ab!g#z_HpkV45YY>1&82uGyE zlIoDmRpZ~TnhwcaMTbmq5yYzTZ^GsTN?~w`S@`76V`A5n zrj3X$hOg*K5M2yk1!P!3bTND_mirov$GqU*qTWU@GCU9XdKA76_(lj{2|GD+1r59b zl7)~&3S0oZ7=;l&4BuqfR*mpscu7MDAB^?LTrtXe#q>!=TDvS6C>3Q1GlGX&QXg|M9|qhVg}VXwMByI5y-~Oqa9r#GGUUy-vp@70WzI-4$!2g zLI^W5rKzSsHLam(hHMx#XPnDirHLvrbsRY_#ZoHxlaYQt<~H<#SJqqb%3{H5WQOxw zNmuC`G)sss#PAETnwGSKTJjv!5)+TiszQi3tX4V-Ud)AX?8TaNiA`RKO(^lADujr` z5~X|LYDX?HZVd`t?Z}*lM4Xp31YbFFMMLl&BUd$q=x5}bhOVJ6=QT7B=(>h5i?)8M z%lN4-)4iE4WVj(2C>7j`DY=291wcj<7XU442+nfkrethHFTz=lENKYNa%5RUaDyYa zGz2#|a$7^UQR9k+Rsh}6&>e<~fr5$wpb8CD0HT(=9x7G>LT8#zD^_u57ps}dDk`_C zSPi@`hGVW;tXDWRtcV$Bal68yC&le-jfxF|JI`8#Pb%(+!thDO#wZM*RNU#{Ttnyy zat+`Y{;AmHNW@GO;h&1l4mQ;APsNrHrbSLjfH=$v<1K9WihC?9!pSulN!iJUDGwg3 zxYrU};lhIzTca?%R0AQ_=oII-QmN865YZGWn?@z36Q=>4*U))D zGa8x!bU{NG0L^M>7SKfv!7mgqX$XFyIH#dGWV{T>$o4XzE1K#GpsO0X3h0`K;1`PX z8kz^ybq&EU6mMwg1|+z^kd+{Ww!jZdii?8tK&R&!vPq@52y1pzl0x_<;3b=*Hd_eI zNw$DOmq4-{lJqH(K9DSf&+N>_7=#r_>OI8$i7y3hw~i7=;@F?~KCmG^M5xUI@jPSpdWEI;Cbu zl0^rX;B`tZA&mYgwV<9oQ5Zg@wAaC=5B7q(H43)^Zi~WgfZL-md`hV!3d5(AI-@Xr zN~tRf!>5!EMPc}q(%}#mnPAzn)NNs_4UiX>ElWL#X+1oajWx{{OuSwo9mFayOnIr7 zbJD0Y@j6CasaI$0Ga37A#y(Ch^+`rbMFG-HNU}9{n~dEyV>dGPO9o0sM(N0YBn@b2 z0MH;H(}8eXrIe)F|T=&aG6?#fwBr8iLy@O=xH$>T0sx z%GG4MwX4Z?GjZu0=eONfrEk!O=RhGYcZo%z}|dK&(#bXi02 zU!^Nj7G?$|_^;Ac4P8ae*E9tGRhrij{8#C^hTy+SH#BquWi4n(8n&pRMNr)oNZN?4 zIHe_qY=5E)F_kPW$8dhS`Z4XT+)i7BH$V31CUf^N?ath?#iZ?U_>LzZ-Ap?upP{V- zE%g89N47jnJ35&VJ8fHdPb??%o>)WnNW()!u-z2Z;fm@Ai#lAJK5R-jZ1WuslP}b! zFPP*DHkkmhea)43%^=qua$S&2V3ABGP@4OCU8g>gUmQ&hW0gb zNtKl*Y0f3hIT>bd)Mjpo3^O;33^O;v1aKR(jV?o@LH0Ogk3rfT(&h@y4&d=0^TiJbp;6g^F!@StmKLOuOv}}h zOaSV<<;uGiX1GwBHL8@gs+7F|BX&zh21PhSm7&ics>I+yXjZx%lBl)fp*fHsOe?K~ zB$9Il;msWjgV&)-e{+th81UM!P^Z1j{!{#c&2nmA}X+Wx_L1nSiQTZo-6VR=Amncz_c(2~0U! z&E+}D@EV0xM+(a?g@xsL(aY{k$|Kkwt#gGjr7g^er;duGR}@fdy(DtKwy1t>L9K`| zN4F~yz=$wM8=^2G%+VbojGiZeTi0k|vARPornz=8VMuCh1o6%&F{(xIIof2?YICa+goSz%Ix=Np!$fofX^Nf#@pP0J98aVC z^EQn*1AHFvOb81%*l0d_!NRs$WWi(W(b>c_9dizm>xRX(^M;{r2>2rBr23883Lh7d zbV-tghf9Fw3^l5bJ+`JIm5zEL`;e&LW#JP#OvGVFO1+oSkym0k;?~itx^l#=qt^ry z7Ox@qd@T1o@ar-BI;4F=a8i%F@}YTg7dJq%ph(d21;C3@coFbT2b)oG6N<28Vd=hn zWpxxl(Mup+PE1=y`L}GE9f)xBqqiMws)chOU2(8!(h3T>6NT?EJQg@u3Kvwm$CXhZiK3c9>p0_B zy-8vLj@1L&uA%LK8UPtiu~=#209Hq;CDh$~rM9p6N>-q;9h~2Gp3+^z$_@}UY9jE{ zh{|`OawEN+fSNQvO@NvKnF5;uwP>gX&>o#}51_q(O!0dGwQ8zXFxSSAZ2_2T1Ku9P z;S9$*1a}?T8tuJS6w-m7?Tiv5t&=P8TWeh7mW8Id7B=Ixq_&(h#0N@-;Kw~{oVx(!GnKvsrdApL6hZh{{<(yQy z(O2OhwsVb$joP7RCl1`9rG3JIuxiB-ve^fseoX`x`yq}2%YJRXCydMTJs=qX$)F=K zLt_wd%E5*@1vnRlbASsDHiZ;e2knUN5!aLNsgy;sJmfc4;!MPtk&rM|g7Quv$&@t# z=$xSj>*oMXYG@MBl+HK>-liGC>TrHg$zTu#VME#2c}rqcBD&W$kBzxR#&%#PN{oWw zqsJ~Jrol&#%_gSJGTT;AgGNw;R#1qG#x8Qs+B~JoUsQO}8(FLn?wu~&c&e0wmRu4J zph`pxvB(Wdyab}T7!E%_b~%Q_TaR6d;a4E`tAc-v7%M2T7f{tzkX&;lrl+p~o_BCw zsOJG+cd(&`{~o&$h2gWu7952a2^?Ft#57w)`S9vvx1un-`q=F#46i=65{2Q_$L>U7c=hoh0*}M1k5@QYTY2YfruBjHT23!{{qz-U>6s`xnJqm9J+z^Eu0Pl#xI{-IE z;YRMb@tqd7z05)vKHap&@A^7p}en4h~^rQFzO*H^$P(!fV<0%bc zHanivP!1Uj8WQ~}X$bysd_qI;hvVlo1b;X_si8^q%oIbm`_MB}z^7yQH1P8Z7rCFu z;F=LU9Q`wZFGS%BfM=udEZ~b#_#)s-4$jXjQ#}uMFM(t(Bw17>iy)c9c)e^%Ol#+> zqX396qr59N&8iZ7*7(&Z3_mq~EegX=jn7A6_^I*hQ5b$|{6-XppBi6?!V6$NQjkXuF2C18UGv1E3um+5xCh zLydrTYG@~*CJi;QJSLhMvhqNynt5S9BTj@rCh zEz4tlW@0Z$T0;`G0XpA>dRsx#=17dJ+5opZ*ig3v?r^Z7?f~2wg*yRvMd2kiXG;dG2?faWw5TOTD})EZNlXR5HQF>#smTZvWa8z?AdToYGf z_!acTRl!50y$YVLF>Dp~8lZU%iIu*tq3fW!p`jaq762IqT>!KwkVsSv_f4JgCa9J) zv;=5bL(70}Y3LT9+ZuvXnpn}$3aIXA=nk92?*|N7QL^;D9{{h2;T5D5^uRZ_Y#+Yn zmIWEAv&c}LLAE<&yFuJT;h{YSX>~NM?ji0_PwfydgHY!T(J~00`ZB;359M5joIx%) zgr59@=AuI`QZYl<@C3hhXx=@^A98yLhOV1D?jiV)c?dq_o-YsGGBkHwxpxG~yC&vM z6Z38>MLyh0F|@OGXs2n=PTL>?nAv=bEi~WaB#`gHQV&aj7lI&xd{3BszBYee%FCa( z$poOhE3UjNVTMv|zGO0#Y=%mhDtQ`e8!p*t*SIXlKe6+Hit{#D21+BB0GBvdD;B>p;3OZ5hdz7C@A4kk%_DEN@WZG-vTw@r_6DX8yJs(E{D>M!ZIs@n7qnAI)xSE~OL)GNP#`ba>s{h?v( zhjcg^ooH2?`ccghq9qA#CR&o^<4v14^VxaTU))sr_+}RFCjnK#;``B-2HKB90Uyhj z@=+(^=JAG2knq-Eb0sc_K+dcCW0EUF=$9uSr>!G$8J78dYE8}AM|mgDH#f0V>Gu&7 zfG5ORpY(86wh@b&$$-IGaqv3c+Ryn zKKe){wZmv6MooDA18NyGmDJGeTfr@b9c1QA8sGe}y{R!n$fVJMkuhXDs?0Qkg#NhP zxHiRR8oes%#K^EpxiM8{8odhW_LBw=Nmtc;vZIAsX*!9kwU@T)@LsAn_r$_eY$jBe zYR875VL({1g(wLasOFPK$3U*dl}49dUfe4NaxF0i=uk?Z0Ra>PR7jM8TuaR-J5TU< zs*}2TaW37w5z5)*DQA;XPJWkB3~(2iea zl!Thpt=bMKOH>o1V#L}m$@fd1@e+)VXcaHD1_KZq+Fdc^&@Vk&VIxHzCU$s)VxU2A zIGK^|SZO_8w%+7yeaUb?tlM@O#wq*9iiD2#bONJm-@5U$S?7XrW35}tXE9at$pB1O z93O-+v(>xN@#&9MH#$P;KPK zs7-3c6CmAwGJ%PYkF#LU9cP0YQJYU+X~@7ky_xi6F{xxRX~i|=kxVI)DW&EcGa;Jx zc$rqbOeUY;41X9iBpA5`n_#4dRJTu}U6 zuq@AdB(sWSR(!`A%&Rv7(quR<#*j-fWX?l)d|Xyu6SZ3NfbW-w4BS z#~U$s)QF)~UQ8@ztS_E{D+O~#Q)f1S!$P1rECeBkg+RN~nb4Kec{a+G&KToR@D|Go zYO$tO1Zi;anSsbCPEglWGb5C+%dz0Z-*v3JzDH5)xRk(_4 z6RxKHaFvb~SEd;^)-?NJX?mrm&<4{S$J;SvZ1o#qx4a2;K~1O&9mcZSkc$pbmyoN_ z>FI2z(pfY2U4!7feqxby#gIcWhP6-SxWi-tvuPuwrY6$gr(@rh1ZZ1&$ckIX z=5yWMI(E9rEwHAW6tx;={1BnZsgr3K4YJ4zFP}$fCf0@~y29HOTVPE$)f9S9@~kLT zlFE51m+9RIvGsY1)2GD7uMKby3NOw{^11V&lg#v<;AN=@-|KJ2`#rY%72Exx$;|ZX z7O1|ICaI1RAZ{}0Sp67PbkQl3uxLa13IlO-#_-_tyvmw7$E?vI?)Hz18VRxrM9E&L zN$0=oG!<%Qmc3y}w*`KmfC`A=IfN{({*BNvZ%w11)-(#Vfmy_0LdDFoC!Iz~UF{i< z-#&6KB^gMNuTkFRjcDYAr;!s%BPaAgS`G&i9j&hh(y}$>=e&Z>se;aF;oQpvtS}i9 z*VOOB?pSp+l3L#o)?42wsP&D)v=xH4>`+k44u$ic{%*tr>VmhPQBdm{g&EDvhAhYw zyv2-yTFfZe#f-wNr$MtygJ#8A`-5Zst@TBZp^J*4i?+irc_fz<$t48cYq6BRa+3{= zEUpl8IYx8EN63O)RUQQP*_shDzB*P`mfBJzc#!3o2La+2l;A3e*=xzLzh*+K9|eES zghT8beygZ3f6atFL~PBZaMR1hB`;TeKNdV0md{f47Yj+Y3FcT3~7%c9Uj8v zbc)O_O5aazgbH?fGV4+@<99n)1t&4$Cavd~6blR>YPAGRdj9!a+%>9!=^n%=Nl(;My)*E4B) z%lQN9Ic0JueUm$>O)hS%$@S;O*~yyWUgdgh6bOO3s;nNk`Ye#(dZuEo2Z-l-rV@P2 zRLyX7?+=)$8SYP}jxIVG>OoP1ITjbO$*YUkqWZfYYLN2!IHmfS!T`mK3&S(loce-E zu?^sxz6iAuEayCybBbkpbB1jLzMDnAcFF3hOci|DuKQGB*jrQ^R*P!Gg>b5nxu&J8 zRTt9LstX{Zy1+cub%;}4AQ5F0s^OB%+^-t3x#~%Hu4cOS1}S|5OsA>%Fmu&+9an3H zCz9(m>tt6@Z+6!H3B$74u!`)gS3SOTWjDsjjkOW8UiI{mtYL8yvl4_!ZTA#}O^KFU zem6qPy(PF|wFEajZ9L$t^?kEqJHVaTj_mA4u;?uT4yz@=;q%INWM`f2;IEjeDg3Mi zj}fV^Z}8}?6b`GE!eO&gXtiV`1n8|44y%>I;R|B2{4QO8ljW^T4y$#^VcBH0mZ2IO zg#IQg4k$0hXy!tTD0Nspb|y&yKOhfjy(Fwd_`H_*> z^5gK;8+*4A+xJH5JWhdK)9ls5FVnT2UH@>yrY+AtWZcI{ zt0%}-CCFCe1-sw{>4*^)Uu~vKg4u|vTi0NAq|IZpO)=SK+tKckv@4Q!PqZ81wnsWV zW;zrz9eAfOCDNm1+1gyAc`b82&TX*5>Gb&NRQz7;Pc4cp*+au{#Bz9$Q#9P@LQ7d~RJ+`7=uasU@O0Om9^GNy>NuMR@ z_elB`Nxvl-@JI#}$$-q0eAl<`^Q4hMkD)=u(4gfx<&mTmNh;3s(grA3&SNO27@`;H zc!!`CV$%jN#F12nBQ_r5G~dA?#Gnc?jq7SC^S)%A;XqT9}fR z&MY1BWTynUHdBJ^oF9hs8J2dskj0G+!{@vTvU4>f=hYk-O}DX}t4aah9GGMO=o~n< zm7LlcD=1+iOVUW#Va`Ijp!i!-Gw`Kou?%?pEhX@`6q}<1@#g3WuL5P4=(EC#ktW4R zQopaDM3(8H6yW=jS+ukgVo0GXGZ)b21X*&Lqe{4+QBr}V#s_9 zxh}KTF3c1&T}~Vnoj6I*wWp%=^GjBxmy4Sh zn-7oNiqYJTAuBQDP82ByF{C1f#O8g)s)Qb&p$`xz!*vPpQcW?sDS=kqvrRQcvngRg zx~b9raR!B^+E#CAR!Y4U8aO%-wlf;*{{`Cyqjn6H5kNu14v462yf_DC%F2eO(gU8)Q%*~1| z+5s0^LI+$l2Yuih&-A5d%VU!~(}o1a^yeC)VqA}B+QmH{r+XBqd(s=q7Mu-9(em1UbFQFlduT zSc~SWQh*NH;F}`REphB>w%MZ5ZLT5il)0r-9&0R(=@@c8hRno}3o&FihQtEIVk|%` z&Uv|*!^dRo8@a0 zhh_V`0hXmV{8XBX&9i-8Ptt918P)cAwRKBv-KsXewzYNpwRP*-aASrueQQ}qeRNyI zISC24d1fW8y_aW3#TBnlyEmdw?|6NBNA;;WDIwc!d$Zf)Zh8Z_D+QXnQV?=i3XH~0 zqwA+Fk1=~zs_^=cEJ~?Tw_`&BsZy2Kjw;oTDtTH0r4e(U-H3iKc~9C(>PcIvx=Jh` zZ^X-XyEvCWK_14rq!sdVcd5>6TAgZIofuNnG4W8)JGh3w}KdHKiuj_RNA-;B4PU3`B2w zSyI!>l9^s+`|J?xlb~MApi|~`4eCqY{IaCxm!%e~r{2V_q$YNyJ(gszr#X9-=Ipg3 z-m|fidNx*SwIpp`DQ&70`(&!*J(()0CsU<%TZ;F*sHC13l{zemH#;k-*;&cX&Pv|w ztfXdVB|AGSd9$;Unw^ynX*J6%Y=oM5le3bVoRtonM~@3e%`z0G@yfk#IM;n{Q}X79 zB{erJIg9Ac4NGcnSTY;K3npd@?L)Q@+JJ1qvkzH1S}zP+aAQN0f@dGHg_=^YEYzl(r)KWleQsXvAccnCY)K@Xwmsg#lmr$rdkN*H`?3A142ewvOR*_nDK-Tx-H4SF@wrs{qEAEZN;tiZ8Bcm-L-2AB8>(C<^n9pt{huzD zZh0Q)mhwRK)eC-0V5pMgh@nbjONS~w7UwpA#oHc>w-t-G4U5?5HDot>(S?aOSG=4n zD(4E$>=Hp^;=Uom_9jpzHG!gQ7PjF8aWs9lgrrXKwLMmUs4~iPegmF|k9yOpQ8lfi zYsYh5c6c$*`6b13UN(phk@7&5oL!`*Ib%oHp5f+JJEJZ)#&8c+dgF_3M=RhNhUTOK z^|+a!un_-o^N@brEH}0S-^2{f)r`igta3*zNxMw1xweJ(*5uQC25t0@SQ_Hbn!5+D zpkY8*v4yAw1q0QLRyzjrOR5X}yp-e>o?jv%`wZllA`A$i7@$I;4CI$;M(Z$z$sHD< zx7a_H_u8QrS2tbzo!g>27dKY+Eq>>=)Qr}{^u+P)VuNh`>u-Zb8?+@EZ3r#NXoImq zE!IG`c*0qOV*1S{mD_=ERm3Ziz);Huw6W1^W20(gBMoV`PCU&Yk}qh`*Ocf|PxFWD z^l5abSI|yXkj#CJ;^b~aap;dz99+w&sm9?bMw zGy7Lxan^OZIqFR}N7Zz5)XB@6ZjP$y=I9-K897msmH#-`@Q_daijiH2Aj2nlhv4T zKDor}Vrb4opm~{;(H|Fn;o6wBygw<+>q(j17_*l5XGnBAdV|ec0=^(BYU|$sBe3Wx z*P>FcMKM!(yReb3)WTWIgwj_i>WrIW=+HdTl>7!P;fyYMZCp}qYCULl#mc~2q8U|7G^2O4 z@(yi)eH{yQe~blTe~bm1myL+U$0|HtDikjjMs#D99!aGlu^Kj3<&jh=k}6wDwMSB| zNU9Nfuf=S6x<+5xRy(Mj#Z-WpO$)>w1hEkby#>(@B3~J| z+syusWVq4enBv~CogTt%Xz~y)tT~3XcnIg(;~`w~UJqfK)?}vIlHqo-jTe+bYF&T( zKjuy3#?(Y^tV7$z*3dS#dbZI%sU7nkppK~rsAHWr00FB~Xz$ zbiPM)zQ-|FOHe3>9%3o{ns2^GEilTBl|zqb{PI0DV*^m&9$nkLgp6Z@GB_>28!$Li zp7NxW@}x{e++!Bi@;wrv`OK|rgf^D*xXUT-a#~Uw5`GmtUJ8nrfLX|M<-nq`3aJR6>tY_g zC6Y0n|1l}B+PpF?K^5XHTe6Pcf>9HA4zB5X`b~Ri0qio`!vWbJfO&ruV5jWN*`irjl!J4s)CJ=%QmH*^3ls%Kqfae?d zWM#cljS^zM!T;VLXcC-2s%Gp`GCY?IM^|5@^06yo+pmeZ3igj}N^QR2T0z&o)CyW^ zxUo_zcmp|Ks2RJ8K_k20b5h$qd6H{l5G=oufwmqBJMSs%yi(YCV-W1-erl(Bj9kn1 z>v{~i;Wc1t0~)a4HDEzCV8JwC3Y{}$E!vdCsgN;QGJ)` ziE(cwXuR}Q(U@it*$O5FdHi)3o^d~GMxQ@;DB=Zh+hZ>;;D z@+!zr)r_~R)gv_2`W2T;0WN5QRgVNsz`UTzAujp?5($HZYP=&E)~j2X2pV>Hcb!)( z10H|8=S~N8T+dvLKOlZV35-xrba|rVzBv>_4#$wlBX`Q>&*izC*fxam$hrsVN`I{6 zffzCvLt@(y#&a>6SZFjJn<9?;Q$*(3pCU3cnIJY|JbDFwzRYAWQs1ijax?)MUg zj?cszcp-+&#*mBR&ZOS_{0128OPF+ND*hf{lBv#Wy0i{+%JF4SILk^nvA}-(R!k*gf&F+auphr89(`Us z`n+>vwRyg_9(~^T==0j6daRKXny88))iIS&$ zejJzYs+nj-ZC$!;_Y!(cw26nd{I0)4m}vL9=n6xLE-#emGM;VXuvgGwRnTD>>ZWD% z+RcUx^=^-!ZpDv3{Md^2#5AKfhV;ddeyu(E4cK8jG2pdnK(%SWsK4CkK9v`UilNK%R~B)j!HyuPNCm;UAP64WOh0u0_Q8F-gNh*7MF0Kyor(Wz^FR9FlP`Yf?~niM;g+k< zUf=xBkNvZTXAl3*KlmqC{_(Ld7N-8iH|n@;mz58H`$v^;2B(6P!Lgw7 zZTdM9bTebb@+SUaek&fLpItrr&pieL+()ygM0wAsK!#8E#I7UrL5w zPKJLy8E#32zaG>lwQ@JLvrIx_OIw37aH0TOgG2$e2F*#8a@o7fCA?5B;l*+Z&B69~ zi@A<>gO7q2k`rH8E%C+G5}Q{`e90t!F_|IDQki7SRGDPUR+(hWSb~zjp4^$QlXMcP z6Fc*D>dZvymy$c?V7Wd%NYy5&Vry`aw5Uu%bMT)eiInTuT|ViB@<}h2PfFC;*NMAC zo#lkY_HaUCdpMzN9WMos?+;D{ePpOU4yyLiAGTOWgPx%FH8NSJDD43KI}&_AcCLyq z`v^QuRF$vNMIYtb!Y1$xA&iqnJP>ryKxnoXFDJ>kJ$ReA`lSx!I1wBV&Qi(m1_CGa z$?t-`t`)|%H|V9hjuKP-%oKyY^p9`A%Li0iFD&jO?L_#Up!yZMJ43Y`r8?LGM}XZ? z;DspgViZU;0{f`T${K-v)NQLI+ToO7TlNJlCTGG>{wR~o(pe?BdG+KLm)wwKpqO)8d?Eq!zA6E8ZwV6giG{PO*I~0&RvX#o+EI{L zIGeClbK7B3CbwlRvF&2LrTDT0mc6nBmcgbM<$+ml5 z2oiM3)?3ypy{3AuObMaME<^C^ZZsrLPb5HOLy<6sZDMnhXgKjDGBMn7W%6=z;?%K? z;DoMgE2jlaetB*!XAr;~WIxlSiB(Oyn}+KGuo{b>i=Ws<}iBxv0muwse9jU<(c zeBPkiUH~fzw$CPV-oF<&2vV>Zgu9S%w=zkB?Xi_ShZfwGh$X;82_61s@G6y&ARJEM zW|m2Mf%+&x=QtN9olY8UQkR&)7m|cy>%0pIS71pJgcI^$i4sP>=H1+xr9;Tm% z9;vOac%(M<6aM*2{`sFCd4zX6RLY;tM9@nAcF@00`qxGO2I$`*`qx4K`srUY{p+QF z-Sn@A{`Jwn7W#LX{S-|8`cQf0kU~CBD7MKa2E}t>>#b zsy{>7YBIRJ=!h?vGP7vqHD>cVWysv&tO4IX%lYZHCKK5D1Did=U74=nAFegm##gs& zYW5K4+RH!fl(jbf@a8RB_>M)A>9=H=oV!Z7t3G#C61{lbRzAQb4A{F#E~;SfCO8d0 zgx6$dEIwy1W*8=6)MjS+=Mw)oVPtN&N=XJa85UnAYz;NDhQ(ByMz)=nINi?)jg*jW z=ARZ*S#}TSKX30yHZ|Ej_KwJFvTd6md7N`}+M=>uoP{WB)8{#%j&Hfp3}2-O8Jl** z1AKeV-6A!|bXRS2A?QwmGEJ5&ja)s9RXS|KUS*NLo(pcJpB&eny~ICP9SKV=d)eOR zcDO6*>Dn~uOl_7Wmz}o>*>H4`g4Jek^3SrB#4VNt{nTci__G)2Hn*LB>TDr7r*ydr zPN?FaYW`tvbCvXyy~sZk{IkG6EBtfa7Ld9_x4CwEo9nPbYG?cq|FBeY1^y}V50{i< zf#jz6r=NeO`R5$}O!7}3|D>n|IoqD0>!#eH?e^l1t#gPu9~!i`dDkgJR77o_Qfr3l z_-8x+>|x?wPUy5HA+eQl=3}VJ;CXA-hAuMP$Uj~D!#oZ#w?o{PA#PQ^iLVB@0wS&% zy1=)6mZhN{TO?TE#^}{&C7V)Wl?mY_6dWdnH+`Idw1p+~gk?ZGOg)Oz^E6nt7*nd9ElIO5nW9 zae;GOw&K3RZKt2w{6$Am;@eC7bB%vy`RANX&8_h5ioMO>u`OGyBBytZHd@g`;Gz*=a%vsUPvr_bH>Ltx1hifxP93a8CR&`5?X}vt666RwZW| zO}0#9wW|-CyV6xehKIeh{Uco!NzJvW)Eqkd7?V9I^%zdLEd*y8HJoX*^`qdLFh^J~ z8cxadVV+2`AR-re%ADpfqK;~CPo~q&wg#3R>r}c~bC7Pfvf>NoF!fU>ub+~H&oVXF z!LP5Sn`<=>0-1bVcunfx>grO&4GoRjbjqtT#n7a!H^t5J8o|_I15&EQ6l+L&T9=ku zF$Lj*8z8kgmQ!(-F=V)@E2`}D3~{@M%b(HZr+F}@S*f8>Gcj(NI^-7qnVCQ#j)|E# z6EnK*6{>rXD#{%4>gMKV8*JU&QZ#TSqJilqqD$qdKrq6()MQJ?O;mHzP0?m#dbx;_ zZcC<@d9h8%^v0Ty>9v)RZe^CafOGVdS=Ma;p0S;jS&miA)J}dG_#Bd-6yhphj#nNl zDcivuOzGmX9l8nGj#w$#4%LJ#D`twL8}90?ub4k$#FdRZ7^;8Ixak-WxZRa{_z3 z9^hX%SQ$2u+}oG$~06Euys9L`6kKMMVWgK}AJHhp&SJDk_es zsJL&qpAz_bI*3~y9w^*kqGYQDu+;d zH0(!AHByE0L#W`0)p%JD+9Bueh#Q1P)`a3@QRpB)0q~p75~=ZwGRo?ZO;fJO2%MMM z@~H5INF$4~5KgPgkCaj<7BAS?K$Qvy<4KBGDl8DP#aFONCPTS`>Imtez997!I)o`D4-!~vj$qe)-M7u6t(kieBW9)6`x9YDx|UUOeg=&71V3D*5+afdxX~kwE(8)1uKef9<<%3}5u+rj8Vwj!BHX2~w2{v5Lnm@+ z^q>SflFN?`e$;|t6w#~*_(cGzFX|WxEzKeItfB|Sa2tM1G5r34)Eb9U45JIr!yy)H zAY*<+88BIbNIH38Q*AEAbs0W_P3Q2v!R^`aF_q_-wO0^`=LWbLStU~xnIOCo9&k0KiYlZqtE~ha zF0WIXuq8>g72t4@B^wj#L|Tng;FC`xS=dF+UA)(G>cl6^ok6iO+W?u*BCA7aW&<0uJ$FL6@l zX}Z#^R@B>3jVh0lkpXHe5|#%wJ8n?eLLG{1pG0Mmp}tVp3f{Bh@t)nnYBocR-fFUR z=xuG$#d5wJOUTa$M_r8|bhO78!v}D3fT5$khc!oO&3@ifT-MkYf6`7Z>ut@J+ex0i zrnryVEfuq0vs9b6HRS-Fmi~mU#Y7`eGdkM&@(!`(9Xi@uo3bJDfbH9xXaG`*m9U=W z5|+X~vm{iZoy8>KkM1NQ($U@yvmhBR#(q1oez}~E_7*_zhL`F2YD=7fhF2-^21~rr z%4(url3XaG7bzo4&d9c&?Gy*luU%i<}4_tmMZHhyk&AvYXF#MbkzX-zj+Y=p5wCpkl+qm*15TfSDJBb6(3 zq?95Jpl7)RWCNslYGPF_H8BUF%99Cc?d(DZ!>ZvZ!+O1pm68!N8=G-#oB2U&W`l}% z@x?uP;SI$aa>q}{W=(ngbZ9{LQf08E@hC*%G>v0QLsm^G&DCZLEwIhGh1Q`7(~AVCi8QFsh~ok5_1iwsriNk_b{Q-tja$sO>+#0w^CIeGOmF z&d-MnYgBfL$L^q}aeTQgrd(x+uoW31Y~}msfm69|Az-cPS-bFoS+F@<_wdGd6Nh6= zd91qt{s7;cM=`WA1`7?_)F4-Bq_(EmfyMA~u1ejw;&2IH+*e(z&=5w)Vvl?k4QH*_ zQYdcR&Ka~GrT?r36uj*_-3rJ%btrI?0Nuxm&IT1q;~ zMys4wt)8IUGFhWXF@w{@nAB=w%3&5j@Q`H+B7I1<0F(@E`O(<&qmqR{?G+1wQi|;W zJu4*x5e|DO?kK^raWAt@G8ykp&Z0cia=mm%de1uJt%QW=szYdNm!z{9{h;LAKWL8Ps!+LKM{g# zgnw`>8%BSYI*{L*MJ(Y2aGn&igjYGUvA>ep*k8^J9#Ara2Rd3?AnqWE8*|}+Hq2cf zbSP!C!5*b|43jqQrZ6e~$u>jPLDoF{19E^49V1HcQ+)Vfnxvc5c#kD`Q0X?*P3<<+ zP04QDqh>emL1@8)1TA>*6l+UBBRPoH5XnUFS^0S;a4pCV?Aa1t;b1xBNEuvVe^%IE zDeRx014HhaZ8i054M1^h`T2vb`DQRSCQE}UhGXZDD zOb}}YnvG_O(Uh3Y5)dDTlF2MFS*1ZSM+1oJLLE1&1L0sul&}PZpCK`pCC28$4Cdzo zMl21{VkmU90$KoW5ORjp99A?Z52uYLh$_Qbc_@abO0F_S5zJxaD$D0knx|q4f#xhA zG?FVT4>15>Tl4b?+*Sr|tJT`t42Z$md-%UZef*O}D8M0ntR0$1wL|k{_Jp~T8M(11 z)(Ezx8q%M}&IF@#5t|j1pXyYsp*fPKz88TES{by)bqu*R47oMA5}U&Ul9*gsN{zi# z40_3E1+7YE&`K!Ou$~|g43bYH)^$mwc63m+RB`ZwL;zGB}D`UYC(7O+6%gb?;hZ*2T?uf4GOV0_(KVT z1GR~BVgB+v5z)3uRM>>g!2fA{>H}%g*oz3%*o&&kh)ejxw;%9r2oZ#VYdof4A2bnyL6eMN&;$aj z72^o0z5XAltnjxQlOaNa1VHU|k_8>mk&-h?}K9Nb0Z8%Ge(HVB63{}7m2H2qhcH|dZ+Yxp^j$l9% zizH=&VNI%m(J5FX{auA53I>Qo!GJ=dV7QG;7E3U!W;bxz4Qh4`mtCV~b5bq1O15e8 zkPhktK0A^&UGwBk*F1$u>r^JKgTYFZQ^$snIgD%Sz>1MnT^_umpu(}|x5wF_H}>qV zm{qXDh7~M9_)Q#;9>LWL$h9iSwM3hhj5aHk8mrYBt5u{{Go&y_>XKU+Ygyr1rEo3d z6iJvhuIV62b!Jb&0#Q5O%-U{N+HM8`%FIK_`a)LA?;4+nc;v#yzJw6mcaO*PBt5xV zN-4wIp$=<@lDS#UL*uhZRp`f%QzdI;@T#T}O4sNvsx5H;((pnEPBO$nzNV=Vo zbUP)O&<}1y%>x!Z$P8)rXo@Vs_f&p*uZ_x-kd0;t)wj^>s}pSr?pGV_=NiE~En*yd zR#!6lc%n4+0(8-Kl*W00jq`vq&I63ms5oyhE;;yQP#rb!(_y~97-J;JBvJ6Nicu&> zK@?tPz@c0MOj?Wj1MSw4lqQgLFr!N&93%kY#z@)7NI96%754aLn?9g|Y7D6T4`lrh zgdEoY!2De7KLk5|*llPy^%NS8`UyV1V-v}$g7FJjY@}+%tXi?mFQL&2zl289>~3Tz zZR{p7IDDVSQ>anZ)?gR2Ll{s+#dI{obhLu$=zN@Q32XS`5Z|&C_yg5WaByrMLz7u2 z*ez=~nTDI2X9-on4RvO40P@hZ&7(n8ut8x-evZiuOa@{E3=T&3&}@aeq1kN|ehke% z!`ex^0zfNmgs%Y*a%YARS;9d! zGeI~z0&<&`1euMzoT@c0r$MY|ZPu&E)^W(zQJpoc&Kk}(4K0_rYmeG+IoA+ipevX~ z#%0f5Xq0p8kFPi#J$u4H!vrJDV1$vq&}kr7uW=7Ubx#k;qg4B#_Vi$u1Cs^NPR0uj zTG<0o;aO;1)8qzWHvwh4%o9O}!V^J94`wqcQmO(z;*@$OnglBdvtR|0*Txbyg%*t* z5gY5;Ny3Cl@gi$m;w~nX0X3jO6?_jWb-$YZ4TUX@il0mrs$vwXB8a&RVy+5twMzX) z&^*$@4srUKQM!@LZ0LNHwIe?%;8(-Pua;1WB|MzX4tpwu25WyiqZpx6!q6$fM3^yK zn3yfZL``UWcc7tSZTIB+p~(%g$qnu4s7x-^0j5xg656T`W$OvR8z=w9L7>0I}@Bl;@{JmIfZHRtLN)67w*V zn3zL|gbphTDD<8*mMw(Bdkh6tONX{_1KZM1U9KD_szb~I?!$hV(^}QMK)adNka@67FURL*NZ`!8TH~;SQ`q2ciL6!eKTtCJMs2MCEOa%G=JccIFp1 z7#s%?$t+YX0(ArBQXDH(*H*EME#a}ltZjHj;LxA|UnE z9c_L;8ZOBP6m`l_s&Zwqd+^XTUmSa67jA{ul(&N*a|Et1uOfsxNpWyB2SfPTmdFmO z0daFYjUy+eGS*rtV@WAQ4qMZ#FC|2-lYtRl$EvNPk^oBtD8Wpi@OnzDVI^xQv6dy)Qlf?>D6SW7 zV2K9Jj20sSi+R$=7gzAbnhA&2d|BK9goyTJMce@deaPV>h}ayycbfBJxI%$YR_0vE z!MOvjkkb`$H7cZ;XEl_WXGxV~pns(d7zmO$=h8t~)_rIGBrMB9=;)Bch7@IVl8-qk zISjw>5orW-Wc<_|?E%gR?7zaNKRgNeqbXRNg!)O2e`xzA;yEng06~?JizqoNfuIIY zAV}h_GLW9tgz!#^OcHDEMYVq;Ayf21+G97{FDaYq`X4Xg?w*}x+aKVGQHSJ09Z$E!X0&7Hqv z1_{C9d(g1LN+iQdzL=L`@SDLJ;9TdRFt7|AF5TAaw5_$MgDjw*BvvOVo{=<&X-R|4 z2?Mo#eE;~vz-l=^!SKs{TI4i^2Vx4fOopJLxx{1myLBpzcpS9lv8o+(H{V<{Hz?ww z;036?Yl>%M@oc`huT}lzA_~Q1#zw+?m3aK{w{mz0(pMAm_nle@CS zIZTWz>9%n-+A>Kg)sQ8nlvJfC^e>m8odQWt&9K@UImxm(IY}8BIY~LHn!yo7G-`(B z@Nh~j;V_&!;Xdq$QWl;BXaUm25{C5w{YXc=lngvOBb_dj^1ATH%cML!izS^elUvGS zt2ckZEVd9a1n5KwQgx4UsRw_KHEtmSLWk*P{jk-(@_Rr7dQgtQhGWvQIAHimO3O}0#QpC!zf zDrr`FAf{AKOZ<-bunr`S*_W^KyP%NAn%ZfxrYxioJGF$4$2#?tmgIM=gLx#`1;)~P zSf)SAcC!$uJ>e9<0KJnTr0>Uc+T&<~41XxR*Y!Ezgf zCQ#Z)Apk^)g;b^GEX8Xh4Oo(8iK;=Hs7>uOYExlxo0gFVgcZ#pSkP3aOQbW=CDK`@ zOQf^9eHUS;ieSJJ(IP$b+d|XVE=+VYER zli-3$AOnl`SAa#86JwEWN@ipm0T{@JGmsLqSz@+IJhn*_Q8sCSE^1*3qil&nJUC8; z0pG}4OJogVL}Anj^T{LRlSi1h9$CZ1tRfBlAZo-hg*>{*HcMonGBW6y`h?5*ED?$w zL|E(~La~Dgiz-A`;Q6d6OkH~o2%O3 zT9oRj2VkN-B|}f$Qj4l96kZip53>mgD-#lCXI!Ek*ibvLp>|+rTyRmzXI!Glk8o`v ztI!z>*tnzpIixnKxNcOTZedWjC{VX>JhF`yZc_@ki4TrMC`2DI5dsm@$q?p;b-_pv zY%oQCnMJ0sHdB;SBhe#p#iArr%4l3i*tm|+9J9DmWSugYCbUWkt#rmT`Zw)z(fYCcti%P{TH+TiOy}*HA?dlWs?&PNE@n5p+y=Pb`6?M zQ&5piOf=BWktCv&tsh`Kd43{?V>U)32jLD+sWp>%2N{HeM2y`mv0E8N1f+z#I3l*e zxap(lZI}>3R!3m>Dt!^ddHN~*DuA*=SakpsuSZ&9mkIf+!7h8Up5(4@hcg(=?5_8@`k(OpE; zU2IspWb;xz@*5`1W zuwn;-hLWcM?id~jx74(N2V9+k&sXXBM)p8ceyf3G=jTd)v#@FjKKkRM0w1&SQHPH? z_$b3i03XBg;l_spA659M!ACJZ=HX*9K5Y1yf{($i894mJL3)Gl8sxkKdGJPZr7;&V zY}~D6z=sA(*&Zwl9t7-rQmrZU98J&J^qj0#E~X4OJxl00785d0R`ptyI#hmA4(r z+h(dmQxM!v?n8EDW!eN@oX zrc`cZt*ag!mn45wzW;Q@N? zQwl@eV%$q*U()lCjC<%XrPY}UZNZFiPkMG%Itr^S8P1`yw)7xLJ1IG8LjdJQR2Ru}KZlRnS6}2k4^Jq^j ziguu%%j4= z^uC9lo9Q{6@>R(LhB@L|r^0np27{|k*>6x{RWhQA+>ac{HJftbhh$8q-uT1P6QAkl%Td&tC0Z>h&!uartZ9_WEg% zG<7$dx=eLd`n-Pcf`D~`*H`29*|C3oYpe$Qm3!H%IS7nC%9csPrwhLs%vTkPOIBB-)HyL7g(oz z-1XK4UZ1tr@3by;1*)upDyKEBy|302a8)}Ctkb*!tIHE`dK^v%wOi=)IDK}v)!|&? zbbD*60Sxw4U^2Ban_3nY3@a!aWikyln@&^EE1>QRRP+iY^a>>OOs0lLvuSy311PNq zGW)SwwbvupE|6$Gx5!plJl8h7VB8YB%Wa?Ua=QZc<<5YAdJSNR)b$S-!7drjp{Pmv7vmA5hjxd?(&8C167$ku_(m2Q^z*Y&ye7ecB z#B5q@#F)=<26RbXY%(o1n|wxqo#OKA!v(HvxDu94qfwA0Hgr47UCW$)-SHRNOs31s zrX}e|V`3ewQVon>@zCW*o1;9F_@~jMo*Iu%2torbWh%6S!Of2#aa4 z+2l4BAo8~Y5&5~nY`QE1AenrX7+XQ05SXdXZ1Oi3feBtu!0rNVQttFEaaB4say#Kt zhS_ZhnoXA*0=bDA1LSrpVl3g{6Nyh?v}I;ftsz5CqA);mH>?B+8Z-nr&iMHH8BV{q z)>r8~$LFoB(Uqad`&R)bAww`3?_B8eG?5KZny0i36EXr}l4MqJ8D4HS)fqwxoRn$K zI(@BLSOnw07N+7#!{Em-MPhV7+4#(+Y6FnrwW~%D1O1nqO-l_1spUsS2*Y?&(K`va zj~_3u=|K1f%qFkF!;R7BAoWsm5t=wofecb8jWWj|rNfh2Abb=QaH$(4{NqrFnSerI zG=uaV4_cNt>X1>_r)0J_f9g@vsEDNKEYrL-O)v6 z(}J{tOJd5Tb!bTxC73U%_+4?76bK95Sp?xxZ8lYUF|Bka;7Jx};cz2>CRsX# zAcazikBQ0LB(?%SD;1R|hTJsXLZc%U4?7OFKw>1eWK-T z*Xlb}ubNC%W>aOF#0C#AJ`CkFo8}n+D8@QAXgDzj88BxW#Vt=a0hcPX1?;iVY?^NX z5fQ2a1`XXbng;ynIH9A013~UJn=UnASiGcB;ej|!CG?(Pl?n8h3Kn?AAgXejO9cna zVkEej1yKY%lS*tm8Bs-yQJXir+B{r17 z4NE1^EXE))NRa!fcmuH@dFiWfoV&~>N4i7>4>8_4HwsdWod8r^U^dx}7!&UZfRs(e z#7i_;0$x>&E)aRC_#er@Dsa$3Pp5X~SwkT9RJbXc>WKy@G-82W(y5)}#u>w%g}^td zL@5)EPrx@Ci>nZrC!Ll7KURdT0fy#!!!@vR7-{ZGoZ?+L&SQ7i2V9jJGjC!YoURMZ za4xQO`U5lI)Ytg>QaHipTVi+XYEPKu)OHyXBZJ2X0|B?wAz`H-Mg?QAVKq?Y>U2|u zn7cWo0fuZ?1sFvQ#Hi`?!7~V9vuQNQt0gY5C1X!dJ85DC%JQi_uQ7}LY=xUgi zuyKS)#xV*mxOk#~OG8F*(WeP;YAV4g-c>|#l}K3F&89ic9jyw7pKyezP&CC*hJ1*o zd{M1NGA0{UDhfRj%!FnwNW4_G#>8+FQ8pDDx@pifiVjw4D$$y9kG;lUFA;?7W1z7WGA7T>k6I9R&vuRm#m%ng`xH4nTIq8ZYu+matVO{vT05PzU z%0W*dL@u1F4;bWND%*}izZ08MXrD+w?@?gWd-z+uHiD}ZU!ET8#_6L7C$Ap^^#vJsVppa@w3 zg`uuA+Zg;PIpL&&1mT~`US^Wv@e)ae37nH=LzN$_80#`{Qfag? ziv=TIsd!jPCY3;nm_n=vz+}4AY;rc&3`+t=GhwhU z8bW5%70rcpfy)=DwY#UAEf=^Rnic|ZR z=eTf@KI7Jpg~R$y#UE%QGRnNcSF^k!1=2bb+`)raW=L5L$f7BI{m={|AQtl6D2N!v zrkePq)>2O-`cm5c*P)39mE>VA!%;}$F2m|bMY%SG2#MqtZp2&qn(@>JPt8t zKFH6^!H%)_L1d<4b|2rkdCdiqA+@igj}Nq9kt%bKi!zm~U7CSO3;1Cy>&z@?DV)^sx3BLT{4=eu40szi9C zxM$Q9EO4_|mkzKFQ;D!9hR@4iUJilaPbHY#bf7p1ipWW;$d6?@ey9kQv7Z7PM1Cq; zgU2^wmF*Px!0xHUV~-C$GMoY#1$`>}Wm?cPYCZDhU&j*=NgwTX5J+SYqqIw91E5mF&`2`DT8%RPO}mlQNFXkf{w&lO4v8P~lgj)cDPjo=EcN{=g4UTKG` zmYe~V(EJ+E8rix6Kh6GnVw{q=A-FQq7{o}7OQI!;)<7B^v&4uXo9Iptde654%iNF& zmJt}}x`?41PwD)rR*WSk5h0d@dB~ei>4Kr-!AM@)y7VD;BBkT7O-Dx+0I~O2@-jD# z4t}E9;*p8*Z$SK}QTI0$30?u9v`e3-(NqkOS(KST*>VG{=xdB$(fm{h*0zEYuH}@@ z2se*axmB&8LdzyYI)EpSyq;A=kXh3hx0HEhhS%+Oc^1yBS?IGnVm>>ydn%oYKRqx& z6(m3iE-&^4rk6{&>WVs4+Xk352@r!NJq5nkNT4@ym92qQc3pZ`SpuBc0!uuFsLj^_ zR<~ppt0vAPih-0aOB9O%U7GRhZvqicU44Lx0Yb7#sA#FBpoH?k0DayhloWnfut7z3 z9dOdh3~>@aR~)A+_~3fG1@Kw@XW^qWYXLUYzq4Y)OgwvDI*QP6KQ@Odb2@^xEfLq_lqZyuNyU&Oq5|FjeSRCm>9(j|7TOgV_T<8$+909|zR4 z28(dgr1}`35H)xzW;h+r8n-tAKcEaX!2HoLXqnRozkgCa6|SC#pG!bFs!Nn2yxiMp zG0K#?EJ^icI(;y2IG?)k)+Bv`;Ac^3+)owCu^CQ6Vq5}oibt9o9s#>_b9(Jk4Wmr* z!aejeoR!`sP9OZP4E;vIB>Q}ytFp{(4oMdWy7+AK3i$fwxV&y#y#j*h*9uY;7sPJJZnYF)8CjI=EyrG}$*SwlwZ8JV; zx*i{f;x{A9sj13*7|P!a@o-|5J`4r0(KZfESQGU6FciWDTcPrnfUa&FhQilq-6%PX z3D0s2Lz!zdlOQ7KH73MlIEq}OSGB-%OpFvtUqcOIK02yBccBDG0f+RRw-K1bJPJ&> zD4;>oW(;)9jxR{BRK8?PD&qN316wFV2Jw)-gFZ>9t(s{HcwCQ$1{(Qs$He*+Bxox& zV_3ul`BW@``_gyXE6G%lu#|tQ6R(L#>@qpw7sK9{%GbVV+@K-@+lKtdxoeJG}dxU4d_&}Y42{~RF zlYucty^2LygrU1C{8Xr>yE=F@)i*;3?jFNJa6AUbABckmW`s$M(KsAU+;C)H0}jV=A(ObN(6i`b_8-} zhF6K6wjKFraHv-2jzr;^F|&hMRG@iB0-t8g^hO^<^RdfFOFI8r3p!7W7bX~1S_3?A`T zr#_Dufr#j8p)HAS-1uPbBdOx(>7TD?BK zp;ZxCjzbL72{{7}f5xCCdz|{@0TG;j|5t+rAG(u0a5?a9Ob9nAc(+>(XalbrY)Pj}?t(J#cjz7a1LK)5U^QNJZ#{WE>HJUZQgW2K(`G1c^~kbOJil zIK*fvI$oUqjS5{kMeG?TEDbu%n;45&kx7SW)4yAg7zwT5q+S0^&qkd1q@8~QZazs& zi3Bnf4+3ORpU8fNB0lj5KpJg1*D~$3FA2l1F!c1@$62lg%?l{4@sv(_Yqo~KPF11m zI&LuN^c@-1z@K2R3Do-ZzgxtRX8JrPEoh$;ZUva`OA?L(UQ6F)&>94i00w8-AiznY zUSJcX@&oAFW4f9VC)?>spHR_&<((m29w#p?jbTR(1{1s<_!c!#;hk#tz-PLS5|@9G z{s+T&??L+FBpO6i(@UQa;3XOa{T!#q>9e~*>ghv=$YT1wP|%D$p6GIJgP7 z0#L}MF+3L!e2LxVw$F#VNm1YElO9A}`oaSmEMyB)A2vukgUFvOmW{5tL4r0(=o-Gw zGKk)?4XI0S+GH_`=i*IAeLRd4b?SA%`p`kt8KiT_u}Ws$&^AgM-EYmBV;D5e$Vv4F z-xBD2LL-T(gZn1w3(mz;A&J35`y*+*y(AuiRmV-?yLDh|L@hWOMx3aU+^!UfJU9IhHuP~if5EjF9nhO(C?K#T5F`oh9G z3@r(2Wth0FYKVcvPb&e{#1B;Xz*gz|nJAq>%aH>WDlnDdq>kN-LTlJ?8L8cSLi5vb z>dHo-LR~ca4CkqMyHACm2~nlmdMeyZ7&y!$kF_;`wT#)~;FmE2EjBrDm(!2{SR4W| zh6iqJW(IJK`9WVYr}6lzj_hJY7lr;6zQe7|^qmVzgoi*s;}Yo{6RaMQ8jjSij5 zTtF5yLlQR+g&51DdCI4Gp!om@$b)7GqUOORfh3>%2JUax0n-#fi@jA~yfg>_I=Ioi zU-fK;`iUh%9P}jnY9RQU;k71(nncDd`ry48dy`Egev^0)BwKUtVQ3l# zP2)h+Y|V)wB*j4>bP{gP6*ljrXp`_r3>ZXSGhFE;fSYE(dCjIvk2Ai19B^X-Rj|(8 zX469B;Ki6~#ttsVByC;<>Ntog;AbWN1svotn_R|G7J)0!@QiQztrMPMIpL*31@>vi zf$HO+FfXuFuwe72-{R#5E6|lHbYLrENzG|V6)Nyk2B5~QAl&^+gF_i(ea2B*#9O!r zn0_-L4z!TL=<0=Le4uq4j4coynm8Ap+)KZQ!w(-Z(1HXOOG7-T6o0O(nc=iF2$Oj5 zNo+naxSDYcCw8ji!6xw~(_!Ps0~N59u8|MMRT|tnF%G&wfybJ2U1f4|3q-aq66jo} z!NH3kIw6sS-pzUhZZn{hxZ*^qg_ zF*+1RT5UE}rDzBy8flD;od(k=5i|jlDOL(7tuz?D$)GFXj8RzpTneO$0v#8!0SYS) zd<;J|_uSp_u&`i`HKqc_Neob${Lm2vElgmpbVNqVJ@y)ZmAAP&erb@GLJX2b#lT8Q z1Fs1oCoxov8gLRdiGlCtd_WY-=E5Nh_*>Ul03nkGO{I&5E?hKHnsH#QN#o}nE`9hQ z-kNiKt4Rp(ZkIj=7z$5EAW}$tfoRvq1eCZ@b3u3{S^XFjHxz!7#Yl1SW}LHW5-$(| zn#7S98*k31olQrhX?%&AXcb(B7){Zr6Y`}%HYGNtK~ko{nbE~1F>sKMX^7GYfb+J1 zzA2vuBP0pz_<(sD+=nDEV+?xZ2N`2xB7di07c9vr1&prP*1%S2h<-Hz0R!4XF?M5|s#q+vV1e(_Akt_0Ai)HL2&@__?vb$NAbjQNfe%`7K zFg6rM-x4R9)Rlx7Jv5M;!ltOz{RN$Ci79v@8zqnNotW=(@rs72)X zEtxbNdryW!LX#O~Y;&&7Ow1zjbU-AgFIWIJi>^3B-e}G*JT(WEvfBA>m%l0zI_cV* zY0C7JFRIn23vg;0qK}Eu;Ds13LBNMkL)f+Hu#rs^VS(0~;p>ARxyqyp4rrmJV~6he zNT9N(f(WjTG=wXU4-e!^1p}0r&G~)0#OqW39THBN9M`w0>DMMgjFOl>C`QxnYY7oa zW~ioP%SOv2LNwI-2z2E+3efaBH#*q3odKtOgHu9L+HfOS@~hHn$qP|}d6Mx-{F|h( z18#tX5#ogMO?SHJ$X;`PpspF~o5Z}^t&aiAvJVWv~@pYT@+o>5^*le#o_xL0&y;1zJ|)DG%4)hFyg9%8(+n*}7$psiVwez{k}vtdx$!A;*P)>a!~`9kfw1 zvW9s=u&Gcqx`GT^g&7H7@W{mY=?XIB4yQffmV`-3w8(cak>8nyOHz)DMPQ?NlG}99jdjTf-1eq3|+Pg5x($4rojWOPoSs|k~^Rq$* zn~DT7X!`dFl86h{N>dTZSd^Y$uw?A(D0}*C;EY6x;xLNU`M9B!alR$m2vjfqR&Yk* z<2rPSSHSec!5KFai9m6}mVQ4t{X5f1Ruth9D{|>~gfqUl2^Fp2rJoZ1b67@C`qEw8 zf7UcmwrD3dy&!ja%X|{43}qzqE^)A(wzV_1xOkKjiDla2&Ma0<5YDv8ZQQ1tX!??fXuM9< zz%xD~jFK;Z6xYVt?IN6#$pG5wHg1DLgi>NbKyj^%No?6r)|J>rD6tKTIBLklyXUea zp~Qdz3*%xZNzrh-mB133?|%X&sti&vL4(<_c%LpwVq!^Xl^V7?po;{*g@iICLv}jP zp$Yd((tcW7Xp!>hkgKVz7GzT60yVnRA}aueMahIPZhub~k=V!;sprhE6>Ze25IHqN z?l#XF8p}#%5mGaM!m`mI!--YeOZl_#5eQe>P05gN5I0#dGM0|vWXNlZ!zFG_8+_hH zcTG#2;}6(<+@~=Z*UONr9Y-4N@}?h}{}Y6+Y{Dr*mo`+=zccDuroHGnVcY?1leB-U zRj$Q=pAN0|1C~g;NuvEMhyD1euF;H^S^8~6EecKhZ5Ie)rr|0%?a2uZ9!b1VFb~uI z-JAw~qTnEU!0C7GG~k85Sgy+#XaJ<$m(t*)YBF6U@Ty6Ju~2`^TptS%+-W~}rXfW_ z`BaE*ZQ5mI9Q=fVEHu*7@94+lp!p#={RzPUWZL}}4K}hVp^pO!PGe^!Sv&~Ci^fXK z#Ni+ERE(Vl`G3ibtynT8{ilgKaS4;iN*1zJ5u+Ul31~WTK5+T4T)*qDW!^ zM<2UnVq%htIdZFw6}7T&rYmacgBF7&3OPq^cf!vi(5X+uwWPX^0`IIzQeW{`(S1$wX1igX+m||(T9JEQJkBRMo#gm3xDVqeD51M1xKK)@6P9|xH?)5Bj`T`Z+sdf*1 zo$H`q2vcYeoM)sXz$2pS4Fx(LkjNBx)h$xN1LvjT2M3xo|Jopl5fK`l`IiKcI%woR zLp35l=>%Ql1F47r?-?1M;L(un1O+%6acPf{>C8aveh6AenG$%~C@C5tnIgGt0jMN5 zWVcd>=DdfaVt^qaL#-d4=NJk)Di7GtNJlpgj~K;A;c`Qxb8#35y%}X{C~ThgJ;FrH zAy7y32^Lm_J_?+AsPP=2e$6bE{pW7O9XZc(K z=V^R)FC|DaWR}b0@GkWaDX((6-9yTqf!Z1iU$sT~QoFBO3%q2)^zu%8rIr(F{Q+-v zS3WQAyxRFrp9e1A@}J1(w{>~^0lTNti3f(Y$W~POoX)9Gt{vGV*AmLrc3)BD@&)R# zwziXUR~^gNR-fSv`0A&?^(DSOJT{i8c9$pM^dLgx=6ihsr{g5Pyfarm!CPH}mx(#L z@ip40Hf&5md5yEuWp~3Kouf0~qLoB*EuE*hJhgRNoTq!|JIm|+0cQ;TCkFyClY}|` z9z2kI)^MEP?^@__I`jC8zSOdTLt@w(>Q#bRJg=Gj0#KDz%&d4o$7ytsU?A zwcdce)G?5U)MJ`AFiy5XCwYD4we$UzK37cuE-u$j{}jA+26DALco8fBEdj}@(jqef zr`4^c%M7pE?eZ)Hkiggu?U-17w=*_do_OuBCfRGVB9DeO^N<9m_+TLf`eICG5JI0AVpVz0YCyhs&In%Sq<6Rmu3#TiXe*%q4Yp2z`K|Ri$9SBz0iWGH*h-ggR-WgqukbE%dd3X1*&V|d zI7iMevX8Vooeq;}C}Z)qWj=2W`1keG?A6X5H7wzB`U||ZftuPtfxWWQ>Gzk9EAJ_& zpIc-1`>~-Uh%}wGs{~#I*7pRkhQwo<8g2Z}KmdkIpatExs`R433rJI^X`AJ8NQ*_2 z-OAw%*j;XaZ$Wo?E|16Qb0S|#6QpUHQ|Wa$y9?U2ghML}odF@ZY9J19QL&&|e~y?n z68EwX5KBNBxjYlRwVuG~f`k-3=zz?{z!ND?y8T@FzaUyS?+F z@*qLwt{@9QH^F+qCLoxky27bqTq`c}xfZ%S!kPB~gANdY?&xs&Ve0A&aEXv)?=Ps; zL9XR<`n|QjN~e(8awUgTQ6339gV|Z)ayWf90mPo%)KNYB4GmaGAcF$VB0+=RTm!GK zvI+zkjK}LM^LZDz+)m*faZM`8W|At86!hPhs|?e%#8v4m13^~ls-l#uiUwRhybY*Ii!{{+fl+r$Yxw^(7LsCQr$v9&%L<14wrqQ$Lj~{!Y{Ru z^nzv)wW!3^F67H4)p$0lmjFy_hX?v}E^yTexpu)~hsP>t)|Q`Pp=4fCU7}(wtYLRl zyF93cacPL9g1<`0zdUgK!5N|6sC2tv0!tl2g7}>v76L-CQiC_1qgInGNDYx&EppbE z*aLR`5tV_yTI%&Vgk%G#uzaSIT_+rxB-F-L(qxu8`U;4jPoHJYaKa_=PO#{N)5@d- zh&wS9k|AJY(BD#rkoxXgk1&5pm25w2DAR(l5=!w(QV|PE`t#@7p1*fOv+{F3je8T<*{Y7Mxm zo$QJahfv^iRlR;>Um;z%TEsLUeUa}Z|3m}43s+YqQ8J+dtmCUEMg%t(O(ee%TkLS6 zQWchkkfC5zXeym7puZ&^qHy8LhJsKa1zb*_a78mCQaprOrdUfoXOBJG2ROP$>bv5rT677h|DcC_-_Cfn0Kt@D|o^)>S%*Z393Dp&TIdn;GfC zA-SDPoNi&?!0c#?A+2itI{c^SXOJkp0G(hVMPP-@^tpu;Vaf53B}DqpSQMVd_Bacynz5< z<^_FOFNHHSf~m7qQ~6y&^umNFOBH2}g!RPAS#cgm3D)ocm!E~+oW4?zE8qfE>);|* zaM;qj)aejXxyI+@YO;_NumNmJ0~K`q*!UI`Jr1ld^qkNilR|4T-3v|Qxav~hLS^9w z!&V_O5D}Pg0(hFjInmUe%6vHM%!lp1)j@rtAP^LjywHG6X z$PvOCOYQDOWiWXV`f@si%!uIS=olYg5L>6n34r?)r)OcHN-Rb7jCQ(H8*ml3vM=-t zXVNDbvZxt_E&X6L3fXdjz1roj7q(dh?wn9;R@!Uqm99X&keTHHh!K@bF}^8OUG^H6 z{M&~@j;{nSP~0_QH6PR_7)as@KqLtKRU#+ITM!yy&Dc%IUf`#>s%xvoW%fGVGKX^k z>O&!+{FQdM6DLgED{L(IN=t3xx(pA)Fwg z0s{XH!l}5FP8TSke*RjDWiF_7yX!F&?R3nySAuK=@dut7h2wxJLZ2N-9@9>U zQ;i)$fT$wJgVun!93klR3+t-1lzS%n3GD|)KTSPhpDqs==nG+@{hGQ$`CbEz1a6V0 zqL3$0qmHA6C6tG1F%Dd)LwQw8)|5~RbG3Z69yu6Sn>6wY?P$nC&yDMp)TwaMuyCSq z@HKWH7;CUv#o?0veuxBC+l9i+ZJ+OS3&kK8z!VA(2>au%QK>k{B8eT^8Wu_rpL21o z%jZn)p40w>P&?Gv16AU6$D&@G>CR~|IP=QTQI}>kT)cRb)5r8x45jq3hs;hzxJ=lAN zU^d0c#iB@YdkVaA2sl|lLbA)HZj)hQXPeJxK-5D#NGLoxq+Q&pg=FzC@D5=EhIGA9 z?Q-2NsV;R0mxXNM`GqSA_AtmI5OTtj>Twv!m&_{RB$LsAv5d(eR3HxN7vcbMPZlW` z3TF^m5JaO59L4uW&q639ybwE~z~=>3j->kvV3$`qnblokUzm(PlxR*eT4VS`Xp3<3 zfpsLBNc2m#GlNn=5(jV?#p{!r36(YnNZO_KC)<>PCIM$92uL|*DHKidXeVR;7=JMt zOXIdPxQ<}2CEeGmVk}ioYB1UGV4nufVi=qh1|KCbG6(QAj?SGDVGqLjpC=NnahC0tA#77n+c~PB`X+5lg0hgnS6+7~y2~^aT^Zh4TwL zVU`3Q8~~;oFEkHi{{l@8xuTH3)y`_K4?<*9#|uXcaWUL4z-}m5C9DL}fa$smrjlzS zR7;Wslbvj4|BL4!04oL$01FKUyTbu7VXw#To(bLw21jw#f<_b?46vs$W2(@oal=;t zPS{TrqX0t+cq_eb;R1j{nd_wE6~Ym7)nGFp&oW_nI9ZQyt`{Q3;%y7AN3=1@WV)M7 zkCs0-_Qq|kuD_|n_}gE&=ao;UcD&}C_wPCLySS)RC-EFLY z{k+V+Jp0oH4;=kVLBS^@(lgAZ}7-^CqTLw#zVRUV}b@=A( z&p#S?pRdO)FW(O%kpJz%cdMMz{(YRQXEM!&RbAqSGo~(&soGx&OWaxDaJ!`@{~Z9m z#F9bVoo>oZ4ZFdoOxh}FlbB3+1yXE2rYFOHv)6Yq&1<2S&T9cTJ#d;qr! z{<`6RR_MnK?c`oCjs4a@s{pma()rK^M_X?yfELpMq8r|=G-4n8tp$h(VJXxNK;Kq+ zVoq}SK4^_2aM4(>|7m~$;*NAd96TlmJROjO6h?RpDHlg#r!ipp68O&z5NY_?&x;f2M+ zMh!pxB1jfOa+s8~1q{JY!arLFe_PPpmnRg=U3Spi9_HGdmlZUdO|Sj++pxB6EO5S6~19-HT7TtN*Z%C!djf-FsgRTeWY%s-t(T8gO@?Cx=a_c)izay`DXI z-xJS<`#$yT#J}&kIQKgDGfS>@9G&0$=MlL>PkCeEcVC^<{-Y&NPyM*y?BbnmYDa!n zcJ-TA?T!R4zqsRwULRDqm{#!Mgr{46_r~B?hdwy^rD0bNz3JAK_N}2!8?UMv@n7e= zl{;?k^6KwT&AK!Hoyv2EU3^(D|LZxoW&xv`?+u!-0E#TL^?|wWH6W*(?F5CJr{tPj z<^r#`XwfP=+tv#!Z$0(S`k<`F4wAz+3$`o%z(OGhZ9KZXqe4bSTtz(h~iEMwyfyHqyS)8{v;p*wzi0PC$ss#Iay#^YZr5NFw1PZ=ETR(+i=F; zZ-1x#n~~uSm-krrW6|gR9NCYQ-B~i|XJ=@`#UJ1B?sX$<=AxC0m%OmO?CFdCo;UKz z;&#^`YH`v1uD_3MbM%vspRTz7%*7k0JUHW_>Hf=YmiFJB`Qg{6U3&HUC*Jz>Z$tf+ zGh5oPz4eDtoB!2k*0D3&^nQ8Y3IDul?zxLQU2@$gcbyjgX3D>x?LG6Hv5oI<+fT^#y&y0$Nk6zP#^1w4|qWgDQ?|%0$ zTg&d+y?yn8H~;;~KTdqEuKro?Nxw|It(9fS<|`H+SU1BmVD-ngRyRAG)2^&;z3I-b zt~8ZHn?HW9&BAUQ2aO#3Nr$~v=aoM6T>Bqpb^X4@C;z-~ z?`^eb_j>oI5AGiG{jFErF#XX5Kd$_EZ<{N=DrxoWq&+z)N)_hC7(aM?8sNn zx^K6?XTR>tE8ZJ6WZhJboXz2By z^c>RlKX2p|m+!U(TP*`MFrTS_JbV7?H%U2X$1sbnait-m6{I;X$?Q(2s;hSfd@5t* zjy+iM*g1vi6eR$v;B;GYk!{2%+bC25BPm&E!{nc?q=H%T>L3f%K^CY3SaS~@{?*r^ zXTihoc^(XQm^%FFAD^0i(%s{GoVMuOi^?9{-m3t@_KGpWadac;4XWAASFUL60nJ{ph>5 zT=k=&R$X%Ns_EhGKW-R$;g_q=9P-Gp*)RO{tUrq0 zdLnzwV~;<2WAPPl-q|qt=V=$*aMFkY&yVsrR+K-zuKmL&_6xsq&qXz@sXbWHa)Q5kiE~PpA9U%bMDH|2VC;j zN#~t4WA~G@&hDRm_>E;34}H7e7d4l(KY!BFCytsv+p#4pIQPR{U7mQR$Nrh;eKTr9 z`)~V|?&!9?WckD|pMBo9?11l^{-5rgblVF*JlAv9hoNf^O)a%;dg!`O4_$osqsKnp zy5RF?Z*9En`**%S@0-$7H+33#|E9|qHhg{c{JOc14-LONYu%ikO9u}8_xIJ$54?Wx z^bZ#;2vwv=Ssql?{R}Hsagf05y zfF`m{Uq5yIdC^iy3xT$ZS97G}Aj*k{zey9px`kB>i&ar}b8W-s78Q}Q`-`mHK-tZ( zmD#4rX;60K6Dhl)cvLD`{{dU$-H5z3r}0)>;~HDz4GNJ8vTcna+u1U>Eb|G&5`jbI z?eJFmhr-qXZlYG!_zS86)wZ!p2U)h^y^E~9I7fdj1y3-5R0;0>TyQZ1;DlokLJnIM zSbN0?RMNf+e~jL@_CQ5__ky?H3oPt=N1IzZepY$oZR2mb{LT8dtDkkwEf{>((dT_{ zREPff``HKc{&D8ca~`<&C)bCSJNu5f@77D4;nkO4GpTImdu?xA{$}^{dj2$e{53Q7 zZT)@G7iYC9IQ5RN$Mm>w|C7Czt{L_Dw~m)f#?&qA_fx0K?_V7VU3=t}ld~qB_T1GS z{Y3=e{wDy)SLq~R9|I?&FpBy`L-!mhA@CGOP1x6cp1Fyyt1@7h*6D(}U-=U#mHk*^+q z|HCdT&!0HExM=Yy-B&zz#jVj<dVri$y1wxd z8weoDCv2Tv*j6#(!AS)_Pjy+_6y}5dsiwQwhN=y73j5|*=Q$T$Rr=V!->WkfRd;^t z7JG-`y|(YT>HRa#?6~OO$6qde-Zq|V-nMYKt!RDc21|UbY(w{kZhC8)Uv}V_i#W8ZTN9`Uj4V%mi*LmjISWa zx^3{yZEn4L(J%k=Yh?BvefDjbcJDVQ*!KK<-JWWd${j2NY2^+Sy?{x4s&&yZe`0)u-SDspb_SF}U z{$t&JtLHw}^3ESDCl>`wbw_5kJ@dLgZ!K@{I(1>g%SWFL-TK+=wXf{z8jj33bAH$1 zZ)N@1_O(G59qImf#eY7&_oJ=z?|t#A*`D6t?6~}-TSxDcn z*uVbZV+-E@z& zwP4GGMb{3T@J2!71!v5Ad+H*`&wsn~l3yNtGJN49Z@*Xg*H=Ox+>$M2 zOFo*?X4>RS`&6T4Xo{U_1 zzgISJdjO@na^`H!kr##p2A%y#rzNkv(ZAFElaKt+$)&MM->y7k&eeshf0}UF@<}~j z7*=&rql8h#{i@!R)aciqJUdTjZz z-@mhZuK41uRb6Ip+&p5?yq~|i>oLoBU#~d0<>05*>)-wPu5pu1fBWp$lQzEe?D`WQ zJ(&IGNps$4G4H2|Rm)plx?+E)cGJHt{`k@@fA#(N+`s=jtW((y`?t>;dF4O9>w0kd z8?SV$SpUB-w;%j!`GhaWj$1M1YV*m5&v!<9ba>~a#&=g-{?bdAf6(XL$8V43`=9yt z?y=WDaYz2U72kG0@sSrDS9NZ8XZ@zRGtQcHXh^{iZBKvUv;N!e`zG(fp09rQ!2PS9 zvF4UueD2Gq`TG}Kc;&wwCtnn)9k{ZWx5IC{mvyx7us-$snE!4)cI?hQ55GTc;;b1r zj6J&cf@}9aaetRd&%gWW^^@{!!Iq0b_+2OmBU(3}M!|@z7-IeZCm6wmpADi9ApeGq z95Dig-w2i*j>$h+G$)f(5A*bZwP4W2hr5)Yl2h1cT#xQI_j;{$r|Xv6Z5KXfD{24lc`L&e6WYEz zb$fB{6XQR=Y0Eo)+pLp=_fBlL@1H-P)A;Jn{_~1v&ztn)>~o?;;obrJ!W-r`Ry_9l zO;c`scK7|4ykYO;8TexN|3n-9_No2Yq-Rg*)qkPI*ZricA3e`;RoVQhV*@p8rPsbuG_YxZ>vpyRvU7x#EX?=l$;a>h^y;w)w|pr{xtM{$N_m8=hL3 zJK|tn&#m9y_UhBvWpXEvIjwYI*g?$u*EcD-D3$zM)bXKpdQ?^Ib*eGQW8 z^MtOrP&B2*6@UAGFL>qpgZIptU-ibAHLEXv_qE%*?M_wbDXzFA^hORT8kR1hr_(pM z;OkM&SuxrS&P?Ntw#Mr#->==aVD+m1UOIop$1j}Q=7y6$A9d)&a~D_MdD%(T&#$}pp3%Rqxcrt&SJ&NN z{pM%u{?qGN@q25Iym(*UEzyn7+|~V&objRUPd41qx7hmRfUg{femS!9ipmQIv|m;* zYSxl_7C+eX>h@Qi@U(qX$5(EDFaMm|8(!G=>ZW}^Tpl|7*_n%5e|kw^ZQoq`2V2W} zd!PCDXQofTDQvazrZawVo>O=5=;p}}{ql+L3i~4O(gzw}+0=T=sJ|V0@s;<2+kCI~ zI3r81?wYAM9y2^R{JI`p?Y$dhL*ZUVC6zf#uYncMYvL<)mNsY?=1K z!0nGc@Zl|wZyJBk%dej}Zt8*Pe@?so-i`}wZ~ZM$bl#_xm;HR()kAx{bkd_2KKaN; zC8KXGTm0^ZH(!|fh3k`9&%W`AZP)L6zn=PAyPcOz|Mt$_Cl(Lg@%ro*1wXV~UpC@{ zA6lQ%^X(_D7|}cT=?_MJ_}1L(KMAZXwQLAxy$+$-V)DU{ZTLUat+=OO9)uWLwQMmc zKRc^?b{Eq>AOCvGh99lZ|Mu+{UwvA=_|)-B?JL$poUE~7;}w6h&f<2dTC^}_wJ?2A zw!V|CZ@2ccF9?DE;Ufw!QZkCA3|qiB$2dosdB#Ed5vHL8T@}F9Rv~ z&;xK(i5F#X0b}53--(`+6OT_?ryx1in(N?Y<&X1P1K(&ARE{i`Z`>0!-H=7hk7F~48fiuwesuer4PKo=Ksf&>l@fJVG3 zo&5>}HYc>$HJW_XH#+slXQ94@i08F;=Wp!Kd--Z+?PgPM!LRo|t+0u+VsE?r!s*lf z`9)ps-}Qc!CQON*<>h8P@u#(i++HrHRp~3wF|Siudv?y5`z42DTI8Ir`Z7u`{Pl%h z>D$--W!E>9&97+pWhgR^i-|A(xapk8Ifm2MY{C|@8Z7*DW_59YlE5j>yS<;?GR+#k zW!GP0I8wak=-2Nq&JP!e1lhz2tiA2MYOkZ(v}au3OE*hc);{mQu%rKv*2<^fKgw3# zyij+Ram964i7!cV3AuaCBi2s3>lk};A-l$&=AXZ=@N%8K;qddE@RGPVo@9Z@AGb9R Qpa1dyRMO56FF6JV05XbQ=Kufz literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..97f569f7edfab9afe6c465f6ea6fc3dc6987760d GIT binary patch literal 578440 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

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

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

Q%6n&G;IOv;f1gL7_7BSh3YE1S6p`#NNVzTd@ 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%0AU1r%4kN71cDcqN15Ku_~K3 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%0AqqFZvq0dpxLwCB@KKso{hN^0Ax)3 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ôQ(0?ZAvd% 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 p+#2I%r)?JAYv!iXO-D=uMg4~lzO}T$tKZWTmW literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll new file mode 100644 index 0000000000000000000000000000000000000000..612aa9b9ee9496e1a7ecdde3b71b5fa6e0c33c08 GIT binary patch literal 132488 zcmeEvcbrs3)^^?7aT*4CGGX!zaG4o~oDG1Yf(a2(Q518waRy^gE2x;)tgEYQ*wtNE z-PJW>UK8fDhBb_cSy#-iS^S>oRNc@$ffnEQ`}U8IA5*8!IaQ}loeKBqy0`moz2IyW zQc8vK_w&z6tpMe}X_EGyEQPvX&7J+!Ed@{2t+2Lws&3x?2ej8NZcFXgw#Om0d+l-P zp{XUcd+t-)cKD&S2OL_v>9*U~9+KL7pVq>{M58f1XQonHSs}H5Roe+}YpYd#Z69lt zQZHFbCA75lKgicIZ!<|s9$EU$e=b$iAjJP&Lm~8Q+Hw}`)QOP$hyY^|;Og1qphrRD|H>&(_F6%Q1OgWn>+w=UV|s3qXXy=eNyzDn2pLa4H+ zwXMBvFNm~nC_tkxqio>cG^M7sw(WCp3I*vaeHL4*yOf&|s3zGY#ftsM^cNonNjss;V4+Sk+a4(SvdjR`XqudE8-BBG z3LF^kx&K(s(tkLs`!5;k|8{6QX4Tcp4lD=l)~EkJu%KhoY*sTs;l78=e>5gN&CC=~5&AQ@*Io0%l}vdl!#XqudE z2Ek!76gU%f$J}HbT+P){@cPnI-wM%od>0G&$W4g2Z+x zFx`>yVf^}-c6OJlq0FvA!`!cHb_Ar zezVXX_A%*KN@|8OhY1a577KMIGF*pBzASSHXf#buTSZK0l>%q74wpC23XR>RQa6-2 zPG~rDywFHynNV&2Sjm@Vuvfu8Ic*=YpnVFm>~q}v8T;o--B9Liq2bIqLL-^;g(6Pp zNyeGNj+`a=vdo#F(KI>T5Q4ylC~!9L$DQNR-?Vd;R1IbRAT*r$qtHm^YN2T7&pH#y z{7Evp!7C+Smbn5nnkJ_kM0D671*SpHGq#6IsEo%7sTs=LDm0wAO=u)@yHK=ur_Mw& zcSy$BkR7~5@@1KuL8EDMx;;dT?NQ)tEFE;)D>CgpAvHspM}>wnj|q)r9v6!Cp3<2} z=1Ivo)7ai4k}u1w1dXQ2>Glvcwnu?8Bdfh))7~nn8OppSG@R)a8p*sa6z#3nnMmdh z$>{n0s^rTuuYg9=C>7D+7%$AzNdIu+VTOA~ceT3e{n; zC0~}YK%;4L+82y7eWAb&OD|)!Sr=#Au^ME2Nk}`POdp})OkbgqOrcPWRX@pSrwSww zZ~+Q%fmAz%AkZlaT&LI$vBhAHl^-3ihaqQY#-md5WtqXC(KI>j3+6k0p}^V2i-%sz#+Sfa##+g7#+@Iv#+OEECzKf? zG@KbKG?E!66!XK8jCQI)@@1KN&}f>Rb_x@pPEp`G_Qr)iSWYkR8X%Q90yqiJ&5CoD?( zM1fx0_<#mLukpELAONb?0?9xC(5nTKfdKGS3nT*paHJMU1_IzbEszWZfM{AE83=%> zv_LWt0Q+cxWFP=G(E`ap0Pvs%l7RqMcP)?%1i1Wafn=uOW9Yt!yzLx`@HTCPrR(hH z^Jm&&Cj~{Q)Y%`>mOgDT<9~p~1{7^N*A7RV#p@`v(lvz7z*zRa2~7N`%|#Mz>8q)o z!rs)}^tfj>?<$-R*ly&X9qG~WaIQgi1OD~sO3A2@!p>pr_6zse+h1&%pUIp0Y9ncHN19q9*~2A0f&xsLMCvFc z4)%47B6j&`3f?8!kD(@w#I*6Nj4u%5xC(SJ&Ry6DJKPp=pyFh}^myn1x8y^2k-HEi z!@0xj;!v}fY%1GBD6^T+aAu}Z=U7N z(chLbnki`RSKfXqTd2^4ox=1S%%I9Smt4O#g&qFWBJ477ii-@MM6otuAZquEIHwDZ zI=>MbbIuYPcFqwRci^E67A^;R*OCmjv2s@+83-y|fn*>6GSF2d1HnL7AQ=d7Nz^4I z1HoWdAQ=d7G0-I>|bWeVJK#ov)^5;FdjMEvY zDdU7NB%BM`=d5x1h$GbYGt=NWVaPB}RC?pYGJ$bA6ZSApLO4z%Wt=!Q5NO@x*=+J+ z-DImhBHC7AnPy}@U{0%MX@_z#-4ZKr$M__gXmM25$eV*c4EJTQh~d71B;x#m_7P94 zE*($FK!9bT1(JaPb6*Q2jmU}z*GEfsJh(nsC=mDa8J>!EA&k=KtSI@txl#A#Ces@% zBkjCo&>M`G7D&d8h8yLua~tc2oE0Py=T2h=W1?$G24>K_7DxtyF|I%|h!Q5M7o~}Q zl-w45kMCnsVds9+)L7S$WMCQb(M?Ilt$(gJeh=&VkB~&1$4GENeZrU<@79(K%uR3w zl7V2NE07EXlU#vhx;FTXZtywXAQql9_@ZfWvRhj+FgL{&NCtwbu0S#nY~Ttc!?kpQ zJCCq(6VAVAI%^)`+!4!nk1q3Qgv=vqz4gmNfqC>>J&%NN9$~lw`>a1Iud`cW=M6U9 z+I9$yylHwk&2?8Y@E=zgJwlQhbnFcB)%H?D^%m}%epj1*-q7>dt&l5^=ty1L(qRw+oViU`tmZ83?v=1(M;IU*dM(NHu}aQx;vG28%t`Y+-_q9%_N)4%G-ahJ1S&= z=Gb2>wm^TUc&qJu)5Gmt|0Uxt62IJ9Q*N$XPBLyeUiZ*(`RAFoEtzt-$-_|MwvenV z+=h|sI&Rs3MxDMwV@^MzaVIIXz$pf0=(l$plney(T!CaD*ufP@27>vnKr#^Q=n5nQ z!A`C~G7#+S3M2!;0#_gz2zGG=l5sokZd+leoPI}~0pfnx8AKX#DornTb!$ro<`%jF z$w081E07EXySoC(VE9H^>TpCDTXvD{;K~zi8KY?mm(oO{IT=k|j!d6eOEi|MvsE;j zx&r)&4^}0jEnuz$(`h>cO-<4iF1v}o&B=J`kH{1jv_uP1A7G^8Ud?z57^&HWwyjFe z-BMLKO5b6&@u{csK%LJGNyw=~3)pjTO=V<;kYFbt2Fih5ou0S#n z?Bxn1<2L9o-e%n(F12iMq-khxx0YmJW*=7|83^`u1(Jc_Dnvu>w@L<294?FTIC?FXz8*blC!BNgpJ257?lV2bPqbnLILV}GM#Q?+A(j{rC;fggKi z`GMU;;Yx#jiCWznFb)f8Mm_`Fpqm!LHgSCn>_Inq8^tt^7j7+(M4U}YFi-HAS2haV zZjqd4WL3bAjjX1bP2tMlUCN$! z#T7^ff>T|AWFR=r6-Wkx(_MjNAUMMnNCpCYj?th%G7y~U3M2!;S*}1b5S;A_Bm==Y zu0S#noa+iC1HpN&Kr#?uFm$t$f#3pHAQ=dN&~ypOKmcf^1(M;IhSctQNHM0{BaAMV zIS$j`{fxImKz?074)_*r8EQMEsT;9CYNm~@IQH+zwB3VZHPg<(6~b!234&w1{lmWu zr%{cg2Argwl8igyzVPN4ZqRZfFC&RKCy-!{Ef*SbP8J$vd^)!-r6SEQb{wT>^9cbOp`4pG}CCe(UNAWn;Xj8Z-r~viG>W% zWS}O4G~ph(fwwQ;=630JcImgeOM!iPNAdOmf`&Wo?Bm2p(|- zl7Zk+S0EXzM@wz3hYY%oFciKn_i#uJpU^(iSha1 zNz}ql_cTewd6oqG^go40oEL;fotK2hoR@{homYhxIC#tg-u0S#nJm(4|1HnICfn*?f-W5m&f)`wYWOOVtUM!w~ z`)=r_hy82lGXeRmfSlzy_M~R)Uo;|8Gxq;7B2qK=P*5DDC1!!<)Tw zz1qr)shMA2p%QxYHA%$zmIU+bd!Z2rkAQ%WI%|c-99$~F#~nON0b1bTaSZAGtFAAS zL1$lc1(JcF(-lYtg4bPvWFT1O3M2!;8?Hby5Uh3ul7Zk&S0EV(-f{(!L0_}?1Uwld z^McgOi|>qx)XWP!v?8TQ&Ah-PB_blto)_nOhzgH#Fp_;pA`Tt~kx1f`mqh4o*E7k$ z)puNhWFUCg6-Wkx_gsNw+=<{HtCi>m@o0s#@V;AIGN}K7E07F9(B1CU`yO7s@!SSM zki=*+cV5hlB4^_-j=vxvss-QN*me*mR#V%NlAa*xd6NE7(g&Hk*Yp!nV}e}MSxH}? zH?gIzW;V3jXhJg+akclD(RLdRYE84;}Bhk^+?nvBaToQ5Z+0K3NKl3fB z+ohTBNYZ3lX4=j_peczJ#~fUK6QXO!bvIEGEsC~HhXp(RHAIE0G-$lYDcetsNo<7vF^3FK#;=Y&$N!i4?AQiNbbV z=n^I2KrdSAio$IVqEtY}bNYmXt4$(>D@>v&oWgY_Q9in*prGw-Hi@eWn`9nMz7HZv zQP{!dCE?(bk|?y>aUn@$zGoClGe3}|$+Ufh;_bMmBvQDJpq~^Lh_@;1%Wg0CK`%?< z#c>B)bE0LM@y?TCe@?VC>B=c=!ilyoVb;Mmn^R zKB1c&(2XLuQBwhAHS1v)O$>!$Y@Ue`m#r#}mX9nfPOL581asLO4whzqghR&9UC`sn zr_#3$PB7^)Awq!s0^bJ!bkA_jRyYB}PoQ%ZK2xM%b{6`euG6 zm9HHXW1oqBrs+YmjZqNKmwLAthV zbHvT}us?4dBue_(Mg7c_mG$fS%4zIi+d(IoO<}`HltcoKW2*lIMNy;{i%v~F%R-B7 z(=o@2B4;!p7_zF`u`MMs7TQ7q`pE@p27x{C@C#2bueU!l9J*Q2UCn4 z9N=}ZB!iQAw}T}%x25LSZ^K2wPE%1*Vt0_PEt{Ry!4d}@N|Y4aMaAN%ou<2HLhOvW z!f&fImlPEhwba-}MJdES;k%3Pu)rq7a5%9lG;|eOqr{y>oOkU=5-C_kjI@ru)9tjc zr4CcWjUUD!(RQV`1cwBxqR|Gkt|yUzSObBeGB8x zF?M?lOa`97DV<6!+|oc1Es*gj@XQ1}c@4g|z|BCp?%YhEu9*YVuni(iVltm09@zU3 zW8?hAL#&<69q6HqXCFAaYHUea@1bkEA48;vu&AuPFX|kVI|yvUDU^^g+jrH#l5)Fd zt==$XqbMrp?V-e~(rj_u=?`fWx;1@obPaS{B>RHi3R(>6{#$|#<{mJkBl3MEH3I92 zx_?EL!t__)gN_AtUEH%1w#x7EcM4*D zFX9?=h9e3+;2xt~h!QR+Dv0HPB1{e90L%a^J2G8C5p}ts2=g-w6tPSWC=$nh5h&W2 z&iSCIpzS^g0-X^2lNy9b`GCpmegH6evj0iIgw?=6VSXY|WV!$*3bO!{_^}V7p9Pq* zr7mD%<@^AX)ZYVE37Gt9S%4`=Y_LnV)C886T)>1K#05;ub_bX|8@Yg~iz2tt^#M#+ z+_(rzk9UEe1~75*8NlSJbSUu9F8zK7SA%r`CN3=krczS*o+1GgaFGj`s32e>4FD$A z^8k~q7l07GdKdu%m~uVL$fcD9jE8vuChcMW47MWILjWdp*ab{f5HOJj0F!ta1WbC$ zX8TH+0Zhz#fXQUVsUkqzjnDRz6o#0w&$Tk_n) zD6C=tldL8Um}sAXN!rnXi3I_eDzOu0aJfTwbSkwF9$YiDK z0)VN8tqEZA#c`(=QcPbLFP&oW(kD51>8}Pa9hifclDO^@FO3Dw#Y@LPb_)IicnQM_ z+)$_6bn(&@!3_W&1~1`aNxU=|Bn3Bsm+DbL@KOUZ#7m8!1~0K5@Dk<~79q^ZoEXlLQaz|%X6YR zaiyk8zcE{hmoPdmUit!9>3qby9R|}Yu@mA<;D9h=oswypYmS|GjB-D&45HHrD^?V1`v|rRaO2RmB(tt}$F$zB5DhcZ&sz@M!KwJ@X zMCAoF7jZ?*5!J{dn(y_H3U_D_3pu1J37b=@Aq-k+2D1yXBh&UzI*q-%Vd z5?=&$;lRl|rplJOsEf68QCEV;HjRMosmIvNt4MH6CG}m@T{&U{fU>0lOD^id zigZyIvl?~v!7)`IeN5F?cU}Ah^mv0_$yEl&RGx8Hk=v+|gREw~H`yB)ehbt)rs|V( zOode(E@;`#E-=pS$f?kb1(%^lH;QM+k#|}kZ6ARo)r!RUGm`u$ByF7-EoU^@F-VNL z0FvXpHb_naOqFY&x*(G4SKLn@een$JefqDDzPRY^qQVSz1ngS44up#fZT|3si{z*% z!Ole*Kys`HOCQ3LS(iX^dX+M&2Fc}msF55C*lF=FfaHpbi}cYK&%gplU)sZD1|f7k zOxpb22p7pwQIfPfNCQYtJWT4Nul{yXf3pr`5Al5E+Av6tS&ihPc8BLU)(^JZa8b0& z(N{G0=nJFiA~~^@dzmjQF4IR}JOc|Hed!LCW-t-l4wl+nGA@#%qNLRBAPpcn>0qfo z`YN%DO2koo2?3?dT=9`yaZxdkzKR1!Uv$?_GllpEjH5aF(sDgUoTWh|r*(QmVLL%2 zCw=x&kgPGBDfv};L2}uH!YT&I$qJ2N_T%dpkP^vBJ5dp_AduWRFd1C_&>fvht+*7? z0;yBrnF)B}x)~_v_rXF9eL^=LIWq^$(U+LaXNZa9dKqHu#yI-=Wkal;%^m1bm@%md za1=-m$Ns&A&LBBjC@Oc4zOn~_Z5SlSERkFVPi~|uvQZROI1|~LAUR(g=M$ufCKty& zZE)N;V2R+l*XFU+e;WtDsUC)4Ib%X6#LSpxHBEnCN;eh zUBW-czYk&y02z!wu2zWu3@Ix29m_C28%q2!IT(LLka&_~d^NBn$Nf$G*=Y=#hX^YR zypuJNw;ZPR`Z>e}?sJGNRwB@7K?HUi zlcdSC9FPl&sq;ZGLt;YpAa;5KlTD9|L}O)4^DL}PJF&J!sQ)Xl@}a2iW97nvw*3;W zKR!r?_$(1KfLY=makYPtDfov04IE^8vRqjGYwrAFsW9|d8wfp_w(H<@5K~i_b&x53 zcOcN{(ZD=w{enhL^S z(g6Gw4}vT}rP7n%9pB1k$R|f9_`&9w})Izb~UEu5iVig00>4v!rO#6hw(oPfxwDZTbBP{ap zjai3;z(x2-DCG*IoMdxctMkhE3JayRTU$syaSI1EoZ~E5L;B<1c{!xMV}lmfASa zvqA+*Z6x>ujuU@u1!A6ia`DHDz#n~pQ}FFcDBV-3AO@kF7=(1)7{n{p3kG4CJTM4) z;yDz=Ae0k>kggkpc%}aLFvzxW1iQl=k~A3)gLuz_QRmpe3j*VJEhUe^N#p+8w*Lt_vIFiZU3gh950a|r!hk~EnvH&ZF> z0fPjeKJ$?YrS7pFE9YX6?w>xB`a}-And(=|!XPvnYul^Fn$Iw2&ZaS3_=I&G<87?($mvt+^2Xmbv~*5Rwr+!PT)mPKYd08 zZ>Ew4FbL}bP3a>zS%JVHdOgwsgF$jV)EFe-VE}{l^z@nbuzzMpm^B{aX6i(GsGmNg zf;Ur10~ka+4BkxDQ#RXI$_xf!*25s4AQB(pQ> zn-1b;DjuJ4kKm}_%~a9=?vM@!Z>G{wd=DIH7u?a!(`R%S-}pwFeKS?d^%!y91#ySg z=|HlbAnuSp``2*yY|F3G3+~7s6jm{~gKikyLHooV(vHR*EQljGTx1iO9gxR&-X)b< zaY$W()X^BE2RC)a9Hoy#FduSmrb^L#hL}fiy$td5fEM_kJ^apph_$o113eitCWZaV z+)V8)bmj<-7W|v3*@M6~%n=;39@>(w$VLIQ1z2d%mM`|sZuZt#>qUdLrsiO+?}3Ae zwQkSBS_^@V8X#W^Iuw(t%YFTJ4 zM{IyowzM0xwg;RrXpPzK(3)o>7p-+sjl}+%-|bi~gsxan+ovucEXe(mSnvQ+`5AR$K|Gh@VnHg11xW)~ko7z)C@UUV zP_KVFV6b4WhZ+k8Jj??NY7hHo4uo0bA+X?79}7}JEJzx_g5qHi3+e@t?JH#l3o`3r zLC+DWU~Zr$7WfxEUzt_n|i|D0cE0Vq(Ewh8Wv2AjvNqV(o11 zK<8k=-a==vAT9VoZfro#^SEsxTZq2^7Tg8SW!(?t^Y|OfdE6mTVV0yo3>NJAJieSLtUvH+ zgKcaP?IdY3U7yFN&IdmFz-cjLK?uV#vFtA?{_+E-NS~aWUjI#?WC?nRKpjq!Ce!5z ziNf^;C9J$2pv1411xj+n1|MWgy8$JK!3hIOnC%Xfcs6oDNf$+Kqw51oj(``&&%hB9 zCtp|CKnLtJb@{*sE-k`_qe!F4X z0T1(l4cf#0nPXtqcnH{lgL?M}i3-97(g17_4}-8lPuXl=DKoHvSr0aNj$^7H2}M4z zA&qhdHi)f!t|^2Kx`QQ|4%9at1Z=?0=N=(ZLD)bVfDO{YAZ(zccA9BEuz~L4_r{QB z!v-zaW5jtEgbiA!1Ic!RutEClUvk|eB)>{8upxU;SjE5wx?x}g?GrXgI~q2yAYj8B z;DO9h$lGb1O0Bq{1TBy{8aDLcW}uwk2Ol=zJSOJ|N$lh^#DopK46%j{zif!Lv$+F3 z4KpS+7mn)Z@p}uMfep0a!-niZU>gQDFzdkv>56O=fDPNTHF=857ss7>kpAC$9{*5y z7jkycZSp?eV&D#q8!}JpVj;D|h{Y%n4`(o7RaWX)-N4=APhC=K~picTGBA&TBNZS%y+UXv12uwo8Fc ze#O1ChjO8fex8S||JNSFEQfQ5=t(4LGF=c4h3k!YSb04Vk6$ed@#KgN_{f%agLsaI z69(}x+a2QZY~&)IE{fbn*9Y;O3@^GO9?r?Gh=&f~=PK#4|pra;7V8mYXw zjfiKuk9epc;vo$n9@g^^k1Q-89=*)yfI&RD9%{rB@GuX=qdn}OIUQz=hd?|te8fWq z5f5nq@rZ{(#G|Kdwy%^K#KWwIcs$23)lY#UAH;J8${EBXw(_|g67lE`mSlc|`lf?G zJe&B4hYBJd(g5O-4h9hq9mQ{XBFzW!&|Um$C(>-hqvd*xIPZdpN9%MT*-jAgNS}SQ z;36KsN-u~fdr(-#ARfA55D)DW@kl#ST;R0xF5)>AYW!}gq*5y`MYKTbXv8Dgu5Jd( z`AQ2W^us${5s%o(XNZY-dKqGkcz)RsYiDx@ItTIe7CM7?Xu(H3*@M6~4B}zdLp;(I z*(kCQk1sZe$9-;n1`a{?#Tmynpuy*p_A~d)`2Jp~ymOMrfkPU=e+)V{Am=&BIAEC> z_zRqq91GvF@D86_nkMHYXF`QZaxO@Z&n=w|Wp{Xoa^fA*b>khcR4;gkW!8yz@PoGj zhl2OaDCa#h(skc6^Gfx2&+Jzts|(-=HpdG|(qy_mw?thovXW3ei0cx5*^2!$Ju(uF zwa!DmAl9OtSlg9-e-+lc8P&UacAEZVVJ&?pi~-CN|2G{v{T9w4^cRt&$#nTXB8BS> z!B}}cAedh*3xef{4I0Xpb_2oAhZ6>ZG20yk^K9four7++M%M>|T?{X}LNHF%t`Lk4 z;FqcCcODRo`xGJArKIvsTSBl+eF#PcAsA@@g0Y?l!DIyjg6Z{02Mh$u^-x2wfQNZN zFzsRg%>0l6o(NR0iG#>~?ckMLOYzU_1dW<;l zf)GsWbRgMI5Q0gcefZ)+FuzJK5G;F8Sj9jvx?vy~?Gu7YI~szqARyR|KuVcQkhjx1 zm0B8tX@S%!5KPvCn}KqEAAAV56Y82dV7@vicJdiwLa<(jSVOR1HpJT5+=1R4GbXh& z9My+Ty@k#|Fk0{-SoR>W4FkcL^&psZMK%gRumx;Q4xM~)+}QVS{;7P?P7wXe}X13|6)3-DtnJ?@ z_$$8t7VQ^=aPm_T`oN6t`DjfP8pd%9auhuRx&KE$E^#ef#E4u+k|xsy%u%@hKQ6)A zxo9qrAD8f}Wudtou>n@u(r(b)pW%c-bIfWqm;K`so(({nH~37KT)ps3xGsv^Mok5f z)vWg>l6C&L#P#r^`yZE}MmK7wneXy6llYVW(@b0mT@fOU;58XYg9x#wZ`W}b<+tl@ zAnmvkDSupI3m+j;!Ee`*1`s0adEc&+)s8J$uYEdT5Mr)}8X*Qe3?Rgweq2I(n9SS= zv&KVwyKa_`5UJp|>qr9#Q9KNOyH2lzY+ore2$5Nh5b@&@p5s_Qe}y8SAD8$$${B5|->4%EAVle4@Edh>)J`+)f)Km;aS6I>r}>~}$Av)MXV`xLc547%4XigdAm=&VK9IHJFK|xBO)Co{UIsl5@v$M@3>D_d z3J`-4rvV?ng}=pU`%i)qZ-ufuj7T{#BI&v@qF1UHjL0&1V8q)34h1nH<-~}j>&A#) zsU9(+oxVNLlK*VGmUF35pE@639y9yN`rjT-|tB&q@h-6K8e zmXYYk-Ni{G(T99@z)}z)(sHbAaQ|O*$Tu0)yE){ehdvDSejtHvW{G>mhW`(KAmJW3 zhrzg)Bu%CZE~Ie15BXR*7Z&F6z(Azv3o zZlmjS$af#SFe{6XyK~kWxBbW6bs08~7b_v{0uaTs`~e~tLRWyO?Nb*7h&|oK8p?0!~U5E zVb*wvBSd_M-FS08l;OEM3mzUd&25V!ULA{9JBBn<#W>0s~(k&faGT}ZnC#BRR&NO$orE~ME< zh+3}4h_f^Z5VcMRlI;WmqV!pH0f>H;UI1eDpsHk5nPuyb51)o5?4-|-q{(!}ht%cbLy2k@K9p`{;X`pU3m-lSOF?`{%dxgO$zO#J z4@LEE@F6|S0)qPVkZxv)|C{jPvv3ZB@f=B-Oc#7e;d z%=J*?!+?i*;6v?U|IAA;Ydi!#oa5s|Du@qB1Ncxp4B|t*AhLa>%-}<2J$&dnj)n9* z6#3x8f1#Yghhi%q@W5Nlx`QQ|mr>tz5cqIAA0JXdd`KF=htk0yKBS{~|0dEPY-og` z?q1A9ck$**q}ljT%k>y>mIm>m*6Bd9oghAxKKt0py~XTT=>;EV4+^Uod`LG8KBRqK zwWOUW;DB}>_;4REnHQkOyGA9IT5&0&1yZL#1UgP>GV9?(>56O=z=!*@HNl6z zIPM$(Y2bSe|I7H0dsfIfP`Al@%+~@R>fa}O1u9IFRUkR|umjliCOJQR4a)BDA?3t} zr0d3qUa4O2Aa<&Ui9nmVfR0z@u7e3eS!55>bEKGX{$+gHjAK4jLzho0kDNbf=6;=@ZU985%N zAIEV>uRq`VZ`3hZQS9aeB#0GtXG=04p}y%Xup)k@(ftlA6~v090jwyU4Pr$)jn_~k z%?B&eT|3P*8!KwL9xu+=AXd~m9aOdx#EQ~qA7{B((XY}AR?HqCRxwzSZWydc`@Dil zJ5fLb?L4sJR$wykLv5#ZDz)NLL<^)&fe3nVGf>X&gM}IzD{hTkHdYin`3y0!VlP9i zvEnZqV(o11KoTn(=$2ssn$4d(GUxvVJ?`A(Y!x&Jx!^g?D&v zXQw|w&Q5=d6mO>b3?zkZ1aB-j2py0&Qyq*9-%ND~sChFLYvavSpObWajFfNkoR4M6 zH&aoHM{r2imf@sSzpH>%U?c@2cr(>vkRIMlCAP&V-b{5E%IPTj;+WG0X_J1B=W(jw z6#qS*XI<#M$CF-#oOYJf?{UEEjMPl&`xj85?+fkpSIFT-=8}Fb={HCbhi^er*znyq zH}EwJQ(=p7*Z|bTftC=5??^hnM9Mhe1VrLMDdIp9cxMBvz{o~0f;b!w(nB1?wirbm zjzBpb2VWd>j)c_2;dE7Sz8{B6{@}%dUWJ^aSdwvws9O<-%_I)rLxniZx6?l&hZomM zx)v!S@G}TroX!XwjmmwCZRZ%!KE;-k1~mbo2|Jd-4=^JDKY%H=Y-cA10B?_=w2$3E zvbO91cOtL~jAURWbu5xq6@`3%gjf<21|uw(qnC*arALVI~}5r>9C{`r08Q5B!#86j!~u!zPFa7!$!(c-r0;Yr5I(B zz$mjyUZX6w#c0+j`(iW7?t5#OtAaEAalYVEZ=C5@V4S1MpYL&~^n6bshgV)o+E>y- zq=-a6kQ6qXbwq-e5Q+XI9R)}ki3KJSlp+!&fk?1QUXc*nVl*ofzBs@6POk!S(C;nY zT;_WcD#T$+yqpp_^tuEjg^$JP_3@ZIvfG`23|IMypk|V@9(r9$(ouwzz23$2no{(d zWNq2O?j&aw7&!?>u*y#c>0y0&D6fPL+=sjzr_k&0}%8|17yPDopir$k1de16(^*ztUu=s}MBp5h)8p@pW6rsd zdgI^Y`lnwZ=R94O?=9l`*D}DcCDI!4b21;}tlTnK7r1T7&Bqe(iNkunarpD5RTN)ZQ=wPkJYj9?WQxd=uu zBQ6H%VMd5;F^V|+4(0TW@WnCb5=hr|-KSR}=Ter03uZpdmN<-oO2=Uwa(GRZq!T2a zh!k;{1d=M0IQ$+aBo3D$!#G?HYT`gkh{I%(jSLSe%5>Kv!(xn zUoB1AVt%KUQlIyr`6>pssjFq3R_2J!!C|)4#4dO@dox%wrqR4G@ zeNHR4gcrt7z&iJJP@H_`JW+x{l@0~okwm}WK~UH6UVAPro+oZY+OY{zo+s{!ox!|{ zfeM}{k_OHbS!ChRWC7!09_NYL!~U6VSxb9}^TfUAp?(zu z6+BNQ4V)*6hr#niJ!P|frOccsGV7fudX8hNZv};Wo(R08?6&E6$5Bxv_id`l z)ZP7Nx{J4GAk98Q)N(yWoOi)9M6J_-WIMq#MCr4C{^p(``c-;4L(Co&RxxLYvYH~e zHsZxZkn#*s+RgY4X9^4F+^ZVeRAzp(fvd<93 zPCi4-GsIqoSf3&OvLV*a<_mUV|alg}i3MMg5+0-YX!SAd5553o(dsfJ~UbpGK*B*~6V?UY; z74Q>2PtQXRXlVzKR2^1DdFrpIAgJ+g$PhK&0BTSp>j5pzC+XN8DbW(TAZUqFpe2&E zW!QK1=^?AY$lqZEsPQI{9#Es$7NbB*H=~@6pD&I%w?K;ct>g1F{R%m^>asJopFP9E z#N|JHI#5T9YaP`(cGTF>I9OIHq7FuS>2WxlJr=)fyi}0Sa-H`eD#&ljodK>f}b+#gM6z z+Ot}tYK^4J>X^T@W^!wZT7d?l>aCi?8=`9ex+jN6)$&@VlO=zZSsk64l)a!q|g9Z^l~+k*xUiK?9%2M+0{ZWvYBT&!ZF z2TYEtFBRpBCkz}?tgf^uSyn^eDyk`eMDhn)l>DuVl1Wv}?=$eo2~pLS7&v50IUtLw zDrxuAL1(pIu1ZI+NB0c8pgF4gqV9DfNvPE$Hm&Zb(oL0+pV35X&!J30H8;`29}o@n zUD~Q1!B&oMd={UpzGyzHwOHK--xBJEi7ffnL|UF#M+-N!Fn>SNeroE7@5l91FV@n& zGlbgvYomx#ypp}XypHmf5}EUm7OMklrw{L^`ilHtgAN=URUeHwaBM<-q&BTisEr4( ztrqFm6nNWD-PTZvRyLFLr+VhgCEtRySUos`)-D~B^7HB``O2pMZ&a{%72|G#Z{Ln(da3mH@JScI zeta_Rf8RnoZy=4Tmr$ly{id3djS;b8wYS*+p#Hbe?uS}Y6&7nv^*5oX&12}#J(H)8 z;T#I2-iV>M@sZk*vl!hJkZ>-r1VV03k;omBI{9RiE>Y8eie%VF~n zoL3JO-5k-`SWVOwi!P*EL^ob^A*?>?J{iq=VZ5is4{T0a?&`>9WNyZPGHF@b%B)JLQ2+xqm_Gy zQ&+1l65W?WS+5=(J)1FJbC-zCg%imQRhny-lEc*>#mZmAO0&9FtgI1TD>(YHpW*&0 zT(p^1MyZ>Hiwz(*R^2UJM=QDU>H*;%kk%)wC#8j#8|mkU>LqF6cCk4P9J-(uOl7@k z>J_P1J(%1k>Mg0a621Kn=lLH>z2~If7U0;wW@&v3wMOdIjAXspF;a-sFZm)h8?qWp#5Vfl+fyt!$!XdXvRSWmpWO92e zN4PbL+GHoEO z9Hlmt7H*c_9%Hyw7_mbzTV_egKS|_|SKCR+!({fHWVncUeUUm!O710AE><1Fy)H5P zJvjF72IBEs2mG9JF)Oq6P3DSofz_EY(%1pjNT`0P-(ubSCQFnm! z{U&v>=&q7_E5Nb6(U?ibx$;hs>B30FCVy?s%w7Oq8R^2_Q2 z;VzMquc$S`jTP=y^|^4DO9bD>XE(MtTV~e#DrrNhzL8b+p(?jIDtn37pMhh^AyV=) zHP8-0*N!Xea$Jq-g}WKPE>|I|F`$cELj$@2mLuGGQm@Kt63)g2c)4n|T7=s{xQSM) za5oCKg*8gJ{@Cl5s|D5=;TW6c>JV$3aJaz;E@Mp)4$m=yJJXsZ+ya~271k8t9uw|n zYXjj5#g~=VM#4QL+$+{J;T{y5YpfZ<-6-|Gur?KL4=MS*wV7~7il3Ifg>XL!7q@2% zcd}SX+FJ>SBP#e(W^W_hB(XBso+DhN)T_7W3ipa|P4+zDE)pwa?D@i-C|0J}I|--9 zVTQdxI6V$??OicqtIBSw$WD*we;Xv{mE4K+PD$S`xfl5l@SA&Pl{(Y!8^fbpNWN==`Oh*E1d6%JfjA zmMSQuZ+(iR11xof*x#s-@|nrU0v7tiLV8Mnl+oIGQs(;N5=d_A!}9MGS0KNo^z=0G z?Z`wWBu*jIFZwe5upiSSB}yOmW34ZwMF-YgZ?A5yMO)X8twqTvq+}fSi`0fvUPoYY z(U1Xd`MU~6p#1%fOqUL1zXnaD<-^3oTV*WH>hIe>b>JA3{LW&!1bIY2%6xz_*}Z$B zh>}Okn2sr(h?0ki4-LhPm|a16vH1Ue1A({YE^@lgr1fP_ARQ;YezW{pPucr7ZtxQ76(R#jBBC zSk5_lPT2>@voG#?aa-g(500;HU0c(3blspey@D7M?mr*HLb~j0q*|^m>)F!PTF{QR ztb6@vnHp%RiT$}N{=JOpMui2C=vFEM@n1fv-@y4xe;&znt5&8*Ph|Q~1=CxR0WZi;XsJYg<)~Jq8xI+S^xtDApnS-lf%H5zVcd`C#~!&>8IoDK|0!gWMYuG z<5Grvu>8tV^z)ZSDL6WR?q+o8+plls;&An#b_ zeI32^?L|JVZ0WV4XU_VzwR0Xl>b|W9*K>8`)8d{vz58_B;$JapOY-Prrb~;b|B4pR z&ZEVyGoNdJeaA7MwRSP=?>_cr?0f#s#ufSp$lV?02CqzT2hjVHyH^Kyq&vDT@0PrG zotE8_L7P4Kz@4GH@{f2vxY`#3?fP2XqwdPQ?^y`;+AaBcz*_eu{k6b&2Fw54tz|u* zUHb)t{rFcPug56p$*1Eu8{P7Cf$}}YigU>=9}D{?srj?sJ=r`n(dal9zug3y;j=-XHaKK-W^x z8S_hST#!^gcg(QPnB2aAot1@+gM!?|K}qH7Hl6%K_>GTNXcK;Rv3uINURbqMU23@f;+It& zuf8(eSJl^7EmyTNnJ-k6qjyxDs!lQ7F*Q$CovCgy+|1|;Rp+SE;cVeT^>yp&steRK z!+je2chyDe3d4O+{e9J?>Pf>n(OC5rY8>v=vEIg$2UTCK78!1Kd}#Hb)QyI_p?OmE zHLBBadqrnfU#rG7>w1$X>{R_%wa9RGe9!6|)jtf^Z%SMBEozP7=EXDBE7Uw5@1wni zku$6BQA-V%i2knne)WOjwuxL{y;ANONsl6TR6njdWFcRuK1E!fQP&u59OCl4>c?Aj z>b(N4>6cZx;kc$>RyBs>ntnwM6K+|2;ixC8Us0osjw}3CHOc7CgYH!|-RQX9UsJP; z?we8ntbR?+H9D^TPPM>rT>YJDFT-*5zpf54^-dj@RIjTgM#sHimFh4Y_kvYwx#74M zyrF($IPL{+s0$6pyJL<_$9-S@Z?(N}CqWmh`B*LYxT2a*)e4WRuK7YGN6`vPHr4z` z9W2~3bxOUZzEk&(rtZyxyC;qYw^BI0GkmAs7EbRB->Z*=(>ufW>MO0oZZo>-2ep-4 z1~}&@*Zic8GTiL=%$l|8Vd2hG1L}9IQPwJt+oQ&^zBSxtE&J8j)}*nnpZG*=P4l?J zYC_i8nv2hC?Tq!YE;8I6tx46#y3%lWjO>i{wfxG}KkEg0kW*A)T>etH0r%8G<`?)&SvFT5nWaxNmcaaE#dlH6_+b z9`|HTsda_nN+jssA+u!I~nq#$9)?%ZZ*jxneXrsG&U}vn_T4r>AADG15 zrqi@e+N-h7^|;E~8tWQUZ_?n-SeJ}}H{3eQaA!d`+`33}(!VC_3Xhvs+hpBiO3rJYT|2^h*l>HaZVT>d!wnqJ8Eds( zGTg8MN!(?5!*Jn|JJgP}-Z$Lfk-LEVOgP>5QC330mG03ftJvfAtQ}=Jnu|Y;-EE9D z%5bk@cN=3(Hr%s=uc#SoO&4xi{GGwqf}5>%(xY+KT#sw39cLYB>OB-Wwsw+roZ+5| zoB-|=!^H+4TRYi0+i=OjCxE-yaLWfBTRX+NQn+RDvj&|2?pmX}weHy3sn$(KcVFEJ z;O^2o@nr++L61ANb_44JQ}3ZjXKb4FnW^_w1os}T?~Lx&y3W{i%M$RoEPh{IQcbrK z!krXfj`cpnDmJ>au-<1_gN-hRk>12=FuEj0dK0TfIL@238Qol5 z4QE?#8{O`>8qT)X2zO!pkgA(%x3s<#?wt4$RkwlrLD!R*ZDoZ74%3&rYPYfmYA(*b zZX2u4aNO&*v6>9G+whgO+gf7`cfjyxz)clS&$>C*4#F`Kuhh=54)wTqYPYjaG2H#b zKB}E-Jt~}z#P-&+9`|+a_SVOmi(iLW&$s?#xZ4ry`PN#)U4*Osj#gA)`$_RX<7&U7 z)!%S+jh(TbtO~=8ZcM73tXkpd*-y1QTa!I5Ubn#7+i-uX=wG*swL;gEDD7(f!{d^8 z_UIYS#ZSc!z0mrXaLeMq#}2*FTJ4p@$-ni1$0fmiW9n^(db?Xcn|k}8-tJahK5Xbn zEV7awH>hrrwZGWF)Y&h;c2UtfNj(g96)-uC!?>W#q&2Tq0b;b^|&NbX)O-Xf- zb&26tPw0#tZ2i%2A5KWBgRScgcirgGb%$8D81Bx|Q^DP1xD{2Mu|utg4fkYKQXOhN zZMcQaeXCN|ONKkFxfI+RhWmO-XKbw{Pen`tpf~q?(nn0EfG%7@?)&h4dps5GvpYn(&H|yJI0!>IT^8I ztyzZSh#hOqHQa-f|4?_FwZL%COuh!(UWS`Fv@^EUI>>Nyh9>c(#}dPRFzkl9Wmbpb zEaz5m%QYvy9B=)`3J9G3)(NnFj4R_J#yX#K1 ze%AG@^42S(r&%?8gipO`eKTUBI?Wm;oF3`ZtdYWTr9M)3nze<;{j=_LYl-1Dt9hmF z4C_%(_fFk!tT#RG)4DUQ9}PF7`Rlr~tPM8yN9=5CQ=h9p+d52h@#C@6USJ(9+_Lzo z*l91YjyF19`!BRkGdhmuh1PjScL>(QZ>>v=?g*@h-&$80-AF|6BI|m?ZGZ?~WZi1G zmQl(2i>-SMH-6M0a4R(@qxn1QX^$IH|2yj=Qi5=4!wQQu;HVK^e{TdW@p$E(b(R%p7yzmwv;%G_%8H5?K3 zZC0t_h^TL~stiX&eY-Wpa75I%TdjtB8oCwM1jBs@-3n`C!yVev8N0*U+;Eweq`JeJ zW4OyEb;jpPsCTz@g5eHD zy?dr%rJ-QR0nZMc79Ro!R()o?#xRo!RZ=IVxb#{Oa5Yd8yg z`9G{j40lI;XY79K8N)qQpTzSAmhDYrh#XMlwSlvQi#*aQ#Epv6_pYG3KcHhpm$gclDTq!JXxm#Jy(gw;p#w{YvWv zQ*zSa8|t63It@2{@U7t9HC%bi-Stmf9}BlEUemG?+}B2T9K3$UT5EJ?V+A~8#WvA% z>HLc4>Yugx3x_Ln#cSXO7~S(@M%O=Q)f(NKW2S%`Zgh{dzE}TGYqZh5-1<4VDMptW z`&0e%)(pd)IX2$#ytSopI!Z5CTWg&}=>=;Ck1LJ7U>#)YaSwUPY8P%qMh_1!(kN)^CL4K3LlDvh^pAt7&+}ddF~WgNHV}YAxE7eP_wh4X;^8d)x*M zo!0q=+oNTZhS#kZJl!@8tE`VbZs&$Ktd^PDO8=Tg4XdqdgwuQSo7RmUcTmHd*4)i> ztp7Oqfrf9a1;XLe;N(Za?PYWvhi|QejE>{*t+mAHW=(yj;XA9taPz0W2yVII2Gw*n zd~f~6)Eiav9=HpQ?ws+TH~e5-W^{iV{|&f58{Ns+X@9hCFuF^y)Bb3!FuHrEtZn$o z`iIf|b4sl7C+jhzn}%Iut@WJI?Sx%pt@WzW&4SIJt+$MBci8;d`pD>(!ltsnG`b66 zQ`tWnT@h?rc6f6}X<57;HZ8kQxRc`LLyH=1yUgf@4J`*(ZFFFsXI=i_J+%%(eT81@7>@AFLV#_FS+ZkQ!l)hC_duPMVnoC&$KK3||+q|)leZJ=6oONaPrH13IE3>aQ-1!xUHkR9e zHQetjmVmp>aJ&{**!LQa*WwEM5ySCXJiva&aJ&`|uwOPDXX`+Fwc$8h2ihMRj-xrq z{@idJ%|Z6}hU170w(VK$`$=(**kHSl;TZW!yTovee5GA!IF4qO-Do(DW|cj{a2(BQ zd%WQ|n$`9+;dBIR?8mfDMy$qu&g0UJHTEZ_9zR#r+g}T}EY8nW_4dz3$DOFbj?Jdm z%i`RL8tkNSC&d?yIi<1D9$<8f$D9kUPV1z-A@*>O`+egOdy=U)Y{Fj}huYIjy-^c> z4{nxM(o)0h?L00CZjq@+KOK92!_iO2K1?{>+u`=zj^jSw9%VR=`viNE z;W+LS?CFN%*iN)(8IEH+(VlBKj_o9Sf#Eo|lkB|=$N4hZKFDyKFO%&hhT~2<#qKa1 zciJiTDZ=R}O|{?DIvJy>_J{&)PeQ*)DxmqW_Y+^6) zxYFn*_F_|yb8x18l&Qx#IMZHcbZW`gD-FjJkZtUz4aXCZ zZR~#;?uY8lhiq%VVYo=mcHlk`PLIPJJG>2jdDA*`vZdzOU+ti|EvxFmh3EUa?d&y% zqi#F<$AE6G-MG77Z>~MgaJ0F-UAf5DZEv?2j=FjFn*Dv? z)XlfowE4RE_K$|6Zby4@hp*ewUTQe%cCtH8@^w4eXBdvUo$XuB^mRMi4;hZS1@=|H z^>qvETMS3tF1B-}uiM3*WH{<}wYR#?*X?TWYB=f^+6Uk2>lWG_hNEsb`;7a1-EQ`! zhNEtGd&OhEZg=}p!%?@$zU6UWx5$3TaMbN#-~EKI+rxg+aMbN-U-6``+ta?$aMbN( zU-gu)+snSiaMbN>U;nhP+uOd|aMbN%U-gWy+sD4eaMbNHD=Jn`FPi@iWgQ(TLhh1CDzjxi&P1n;xcWG{4 zqBuEb$z1vFxPOIpV#b2`UtW^6{{N_P?&Z$O?njL=w-GTNd7bxXyVi2fhh)x&G3Wh~ z*>bmpm;)pE}z^YN}>4Z36D zxBhG5nSbB?nA4Md#;&{d%W+vhd6UeR=UX`XI$zM3o2NEpw6(a;@0Qg0pjOwV+$|rJ zuw>ZS$$#JI+AltXVXMzavX!M{Xfs^J5nM7TnT)CvM<iqO@-s=zy5!|DKV3O%jUT{PZfIpIW6fzztYu#Sc z6Rt;F-8PJ#Ovh}@?R8fPYyI7fHSg*}X>>tWZ{eaY>^>G`bjZ0qomZ0qmcjG8V_KecabCbRr5Ls@>1<6Fyak>x*x zpSHRivm&H^?6G7|7P`u5b4h|W=}AacR?~<39L8rOJQvhku%XY-2OCx zt5y5FbPVltCPZYNMrEDGWc|j~87++eb@FV@8G5jqo|5K1F|{>O-vG zn7UlBQ}&qp7P95EuWe?_dn(_%y!TP2hc{ye#>D5i+Dlf!!WxdkU6{#z)D4&qebswY zI0}ogul7@iL(*Se4@pvug``ML!t5InD`urpPYg8JOR&pYb9vEyF6pA_c5Yq zeVxjU0L#n>L`LHijk-A^|A)PI0gS4;+J^TzGr3F>0+}SDa+?S$NC*knaFc`(AsVg; zUQse+1{fJKac06rP-hgYRJ2g>wf6NADz;L=VnOQ#+oWnMEw;7As;%1aifw6at5tt% zU)1ke&pBu2OlG3}TkZdU-}j>D$vSJVz4qE`-}gDQk4`%sw9`pDvuI~FEzF^BEt@5G zz4iYi9I-+ALmlt^ik-iL2b`#TeZ>`du~1j8K35aTxIfPo$!E|jI#hI6l5h9eB}0V& zzYk`qi*R;xHm+Rd!e1B8)5*u*eEj0RpDMw15w2Hp#BnyRlT{V43MXV#;Vrvrb-LE1 zwy0)YOK_c!>jGRC;<^ae#kelPwG`K-xGuxB3|9*-FRtadT5pj#N$AD zUvxypU{%B&t|CoV>svJ8Kc>Bg_eT$rJ`NnLJ|OMVnJ#e@u}VLwVlti?hz&1O=S8H; z)w@F@IH^RRaux9E5jUv`>Z~yjsp+a=^0PPrUP5OxbT&g9$!R2~k(_4AFQvSXp+1KC z7#bueNKTNPC^=DbqU3BM2d96-hE3#bCTBA_o5|Tq&Q@}^lCy)H9pvmF=T36&B0rqLk}|aX@(wV=wXH)X6R1stTD?ScW4chHMLuNcjy(4-I`dqTf2J1 zRgNQ!`wHV8W87nmdyH}4WazsLJ;Bfu3_Zb6Cp15VcVxxGCD0rJislk%zDW&c=m>_E zGqjwcS{2b;`7loQKryle4oP180DmfYKk5HJ#YaQtnpY9zH6oTg@6? z3H;!+$w2q;vwij%m!A&6=~5oY`8JYY1dUOuPhGI&o#zZt@$+e~fgA zlDgMS3!7{E2{mp>{->VpE4~!J4$O0=|31zl>Iz3 zmt=3E%qGfgV(4aaHj}fNoUP<+C1)!+JIL8V&JJ?!B2~Kdi~G`44OIYyQKUyoECY@8<8!epwGr>j6jTBh-9^ znvYQPE9AUF&MV|}>xYIH=N!^s8*b!uV9qhh9HY!J%DhR=o8-Jn&b#EiOU}FGoFL}} zIVZ?DuK(6`Bk5?B%{%chdYxx--gwC0CR_+F*i+%~Q z2B;0%k%3j<%o|aiJDs*or)?XwAB{gdw@eG=&CYc>o*j8EQ1rMQ@zXxcDM62PN$z01 zt~!!CLeHN1tQw*JwCpBIZUbM+VyBv!hu_Ytak*d3-Kl+N(tWv8P`mcz)@oz(KFTUr zC+B?|w6xIU`uHh7$SraV&HhPlx&EC=Z{$wU&l>YV?sQ!wr|Z(zj_WIip6Y7Q&OhZe zR~+`sJD&@xN4idNEXuBM&1S4d#%gA)X2vRW_$Qt3@@n#~bzJ*!ir+QLF`^;}4QEb? zx~f2L1bxxa>!A5ZQw`ADZO3mICILA zu3E=ML!Wjn)kV^$e>i1G)*|S9-E~~gp8Te(Tx~h)ufV3sLy%wT`Gd4GN;@~v&e`9Zcm;rm~Bv_!xH= zQ`yQ?FghX?A7l9#tIV-v(rE=3Ikq`R6?l=0u>~8nOR6UW4L_qk6kOqWdFbqdfI|&E zuOLXBduY!d+H-*RU|fafAT7U+mn> zxSJVwD<$8h_|zuX};e}Y45{sG3F;E?)%fTebTu?{fS0meE^nO7Kkn4yOmdYGZp zsdF}UHd5zqP1;=}b=EqhR`1rt54*J{j+IhNn;B~Y zAY(-tYZGIgV607yb%L=@FxCmiI>A_*8EY$J?O?1DTDXI;3LMfRN@!sTEF6+m!Wq<^ zjJ1og_ApjCW9?zA!HiYTSmlgW&RETqIl!_wz_K{VvS_AcGbNiT`84$(rv4+;A7tDk z)PIorgNzkqtRQ2#aYp18)xnINQ`g;12a;@b94HUBtb> zT(yt%L!=MThHi46A-+I-nfNyGJz%c-8}S6?HBIcvA{GI2)yc%cn&fB*=tAYueha#c z^a#y0(5=Q$rkXgNk~2uxXcY*p1r2Wymk_-~Kk*7;2l0C17UIps?Zi8XcL594E^Yk4 zLUq4337U74vqzf(dN1jH+H`~-&}IT3)n)+?YV`~42{fu@# z4~|>CK>ka_R}fl=v&_zeo@3g@i2DX*juSs1eh4hYyF=R{Q=snv4$yChWRWiX68)>7 zCxV6t$njBfl`ggg8M=o2cKt4JqQvzK-K2LS?smq#3y5_vagQ!G@6*M%50P^~zjt7+ zdQ`t3*hS9MlsOFAt)3(2XXG3~tX%aH_yx^QT}b>hr}UH(Njh|oj8i4!BF2f=6K^BlN8C-^ zOMHm|^%`)v z`Vcr;W#dQ1oM~SbKuj$mIKcL#Dl#w2;i%ze;UyYp9N`4&llu6f- zzmqcelHX1GDe{k!)*Pa(j95#obBJay=~jnmj+5?o>{sVaItpAq>A2$w_1{xm&L`B+ zsb$XnYU8BgPKh-NoO7nuIVDyD=+#qOoT5Jf`o^g-(px}3FtyXUQAJ1I%UHX?`SH{) z#_FcbQ=|`p|K`*lNWMI>hn%AfJq~`}G%ZUsyRx28<E+LIQYMsrn1EfN9@a!KWbQJi*rq_V~#j|S3Zvbc7^cHZ` zXfHXf*^-L@_{*lpz+XE$PX2Y-l8Y_iubC8q(L_0wCxdAY(% zP5_)|rpLg!aBQ5ME#SN{y)#Gb+zncv(S^_>W4p-d&e^XzCmjNR(2O2(j)L>(q~qXB zoS||zs-{YnD{-}4T9x~RS~$Z)P8m7Fb6LLN2WQkk{;A3uhSoB)j&uV;Z<^6U+Dm>b zV+Fu}U`7nF##hA{8fWNrq_-gSr!zW9-%I)3;IvNbg8VnDy2$U&-LHN;=_%5O5PH|N z9@0m_e|6I9xvUA`zcWL*HmXy{DVOBM<$6M$dbWr3aF@u80%!c$HIUgdu7>aK3YP7bLG7-$j16Yrp!-q(k8U z@$4RQj)LQyd>owYnJRCi`s;Wc3@_f!+ph*qcI1g~U3pKaikTkr%kspk;iN}_f9}j0 z#9BR}hMZc4Hh_;dMUI!8R$>7B;LI50k4=a%G*13?#4QNDab_p!oy2>IyTQMAW*6yh z;#0&!;J-MthxAe6>%`;WzdKXqi=7(LL3HImp^9oeq|1oIiKFs=t;W{Wkgg@x5gWjt zSkpqml1~(M}dEHO%3TEXmt;QV-M z4e2^!12`qMEu>qC0dS_&#zOLIe{)GB&ZEfLxHDPiC=of3fpwFEg0R2{N9JFup7SOI)yMd?8>IP@yyMsuVw{{U;JiAk zv%j>po#gBW2Ym}j=E0LyFouy*G0OUcnF-o*7cA+N<0qE>9bW4OOxm-dP1E)+e5mH zI0~E_X4jCeB{qPwe|8ILFEIelZ)V3x$BA3ODXQ-zy_2{boN4u4q`QfS!134jkUmO0 z4$fWm%1wKSF1Ps2L%NJO3LJe#4e45912`YeY9Z|<2Ee&~R-E(}&==Hnx>*+F>;@-V z(?w1H|Q3{TAS}^_`U8 z4SLXwF4BiUAFJ;neH^s&996MS*bT{!3IMeETNFOC02ghHpN@)YpRVq0e1w?Hxm0Z`B?pKdYZUE=h zvs=jVg7dS<0dR(#6C)=M&L1Xk0q5*_M4KhZ-hBi0aWiC$uyxRcmL>?ZaQj}q0%)JF6W%ZRl^FEK`p6FZ4JiCx5QVh`~s zQJq4aL=UlySVOEOwh+Cl~aA(jzqh_%EPqL&yW#)+N8oy4wF zrQEwo_mDnHS`A_=7$m8b5o?KFVvHCkb`p0IyNKPy9^z4=8cb`69%31>mgptMh;d>k zaVK%t;Co?17wK+d5Ai7R7(=xoqTe$_Y#uR0+-$Tw(aGIwmJhMcfO!N@Th$DtF71FiD7Gi9u*sz(Qous>n&S4_& z87A6lh@HePqQ^r%v4t2Tb`raYJw#Q;oDyq@EyNhHlh{S?C#(dx)xv^28cq3$cf ywLu?r*r5Pi361#{! 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
7dFL@VvRfc+9JL-`U8*0 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%0DT3e?iJxx!P)lTGR@K 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⩔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

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

SUb)XWQGiuGhnTiiG1%fL= zaHc?a<#47ze&sljOz~OCQD1$Iq~S-8DKIY26qH_qDRQxbDJpaN^Ilp9nBr3sk(h$r zA*Sf+sF|YYs2g2|DgIq5`b@#8+h+;{Xth6dk6;RJLNLYWN!LH3EllzC%oI3a3evz7 zlr@RW0}GO+%@~6%BKLu6yL~9fdi%>4NPGHMy5dMq+vUT zDUds9*p^J;cJCw3yT}yo^8-mcktrW3+;9cKzMMy9ab zEmK%NXNn#aHEyOhGd%Yj=Ikelf)hRD6&r5L^+0GX=UUhcgB8E60IkivN)u_0=~>8h-Sc z0^{;bLFpx!A{Q%|qB5sH@1=EsDZVBVi7D6}Vv4SgnkjmYy3u8r;+s;@X9`Z;K2sn- z3)Z1~1XFMmf+@aDy8dNtVTx~NroaJHkOropT*nk#voM8U!3ao9Q7d$&2nt6qg)3a0 zeMi+Mg<^_tWv0LZQ;-IxFolsR{G2VdVoOZHZpRdzaGmSll0!^kA1_@r_wiljOH5&P zjb#cCaM$d6DxU%rQ+zu!1rC^kG%$q)7?}d0TF+72F-(EnNyD~e3b%V7ao$CyaGxJY z+KEhIG547w7g@j*Wv5UiF$FRbQ&2xlVeL3mkTEia>^fJJ>pymN z)bH%~9Cf41ytDsnspxYBr*5As5TK5%JFcZ%NmGpe^t0e}_M6{#_&- zyt7XlxPo#bq^sETfLyb1gr16R!ZE|M$UHv65bO$znS{&!L6-$lZ~ zJNu-8D@(Iw=QYaV=SevI8pvAoA&cG2*%nR1VzR=DA+&smG<-Qljh)HUxvL7QF-0t z4kc;$5#QbF*b8^fUKVu0UTAMg3yoURE?9h&2fb~c0UBG8JJJ{pudMy#b^AqQ7k&L4 z8Y6^?t(?Y)q;g#7Yi&T4!!eDxD#wAuw8JDv-Fi4l!;c=OVO$>5D7^%xIX`}(uDA!>cmp7Q^7drwHrqv1^(}KbgnC1$%%~n-yQYcLOAqst&ZX945 zX}~m77%|Py*-|UEglX({nAQo`xqf~*T1*@Jn)!B>NyujPj`@4eYgQiY&e;x?Pr(Y= zew2|72gpVmkj;XP$cE@i!*&d^A$QWSEs@Rb-d~)95!u}52bFdrvRTZ1WXnYsAY0i% z6iLX2jD&2|53*T1j%;KUvaRY5_Ur=M*AkYtwNj33Zm=?rY;$CWd^v`UY}?gDiELKS zm@Wp{7Id*A+rD+Ni>*8Q#~|Ad33X&!bm$VYQA0+yvJ+?{Asf3LvRNp0(-5-lq%}jf zY~DKECF^;%<|DVS&C}i1q`tEh*Baa@m#F=MO43|gWVT7OTaF=K!w#>JZp>?4t_8eC zo)NsZCkTqXc4V+eUOOt-m*KSwtGsS@7a?i*5qYiq?ho#I4$guu=HSroEVgycc@5RA z#d!_AttIeU`$p1*X!z*il_J;kMm7B|Jgit}2^BR#<4(BxjsvOR1#8o*CB(EJK zIqKGnk~IA2eIf|sJYL)QRV7N-yf)%hrChAwwaT2(sk9F8+R+k`c#Ykm>AJ3tdb+OX zs2g2oy6$39(dRYJ={~O^VA9}=yf*I>LEOift~-`=eV4XO*Zl-Q@U;eUFkMF)c#U%1 zbRCyByyh1>0ury)3Z2)2!oX|uUR831tFud}+N4m^bw5R+uQiB+={nNDYo;(x*ZDbH zYQ>g#jopsdI^jCkFD^&LYa348T~cKduUWnIAM<&yEqSoJX2+>~3RY8hKO7Ur<@S%%W%r&R9+YP%*Z(f z)vd)j1--2$a7sJNcUie3r_k`q+I`@ZSe1uTJg>wp#R1W790;(L&Da2Jd z4kV{sL2}fsCy_M#=#493oX05}PybQ6=9CfBf4Nw}DU~@PLuno0loKT)aSFRb<4Ro} z^|(^cQ8&8GxY8d=MW0hRr~90OfJuWda>~5vKkj9WD_x0neX1?vNOQAV)vvm``+jd#-|kt{f2MG0dUF*U6>41RyC}4AB^-<^ zkvdKZ3jMf}9kaPsY>`t~Z8@bCu4DaXaul5M0zG5p+@V{H&Q?t1lu&NTDYK>mt+BhN z=O{ilR^v+Fqp>y>h=Xw@QpYKwv3^_$(R#0|mK{#%nF>U%UgW4{KCWbT>o1N$&nf1! zok~5PQ$m}&oRUHYI3@2OLL#RiBXSDm!zrO2;}kM#TG5 z$~%EN;V}Gsw@2F?${JQST(mOQe>|-|UFdOOm%+}@_U^eoMV7Bv|AkS>Ka(2&b z=R5n?|1-@IUf}HWu-xqwuM6SrNoqFEezk5`t0qgDVc*%Z9PX0k!p_K8jy5%%W-Lc* z8Vjncnszi6qdQvASbFI0HgbEqL(0PHSKqi#bT|3i8FWXZ3M4bSqiu!5=#C~9j?G_e zT3R>^`)F|CIFQ(P2g%V9a7U7wjSluCeHSVwVqYkC3==S&XpP-9y}ROLV}*S`OxTA5>?3v97aHra57AZ4at!t% zx2jp@*k^X@FOETvede>BNM`siqp{Pl z_mE56cV8vF^NIJ8qmTKp!+fOcGhdr)fceNXg86>N3G&Q$Z)f++cOPe;hwbjKcwOy& zj-+P8kJGjDiMY%8#L(z$J`wFkY0Z2hsvC=u9C{mzBe`Zi@qTi9lB42<)rVcSPxFZ{ zRCw<=9Ze`G%Seuv6b>Uf8dNw8*l1VbIFP{h^OB=(eE><#M(5{$7-s?7`tylIm%uh+ zJ~4%5z*d+eJLT3MVEb8#h``2b-+W?QMme9@ag>$LGoScCsptY5$8;Ci5TG{+qubs8 zHETYR>lpKi4|{qk1h!J40h?3kfNj=% zqA6US{-TPF3N@d24GL{O5eM^$qz>4ELO-8q$84?@TLd;%TVQL2>sbE;PNOd?IqInq@wp zXm;x_jzJG>=ChqjJs#LXn-lCbz?MP=fGzJJLL#ssBLW-c18kul12!`H`NWXBnNJM) z4AT0fh55w7kpRu+6N4d6E-}i( zmBg{BH;I$9Pd0r~|JMy;QxBE1k5jP2DWvOjN}FqdQ^+%dQ!aLbJf}R&+2`SrM=M?@ z^CcuT8=gnnu_oN*SW{?RHr9m3X4J^&19gq%3uiF`^9W~gJkrb?K2mPaBUHSwdik67 zX=Leh3h(6+novN5@dzy`9EKeoAyeC&u# zk2yFLojl81R*q4IJ*Sp^`^QM5Gc{`-YL)GRk43 zj-#w}o?)cNNJW=QII_D`f&jgH7u}9ZX3ZXQSb{DzQ@@0g*~dg+?V#p`(&nvxlZ|Y5F)78x?98=~^hX9}nVS7>U$TNl@sA zk?fewwPK4@!fHz;t#BRdkCmgLlA#&H$17hXkx*7iBC}=;t%19yPf&bppoWer8fY_y zI2bx2btDoR=!cFFTGcE&B+@fuh}^1XnGYSA-TH{*&Xb7wY)4X$Cy~(RE{UX&0TRhO zg^)-h$cQ9D`H)Dc$4G>X8ajH&R$Z7@wXXLUhh>Pep(8Vd7^9LIGF`sZhD0V8sfv8) zD3mj%iy1l^=wcf>+E^Ex*s`PFy+uPu50y|GIvUz_ap;H=($G=f3DgmXj#zDnjzUwy zg+lywF|~!Eqhwy3JWN)N_q1b2UySdiw@Mj1;u#I^3|#gra*4~~I#$VN|oQ`pGx% z6NN3jWd?;IxL_)yFmx9VqcG$bj`b;Q|6$gXB}aYrnPfLWvt zvw}j8S$53kTCqjUVztGrR=AG!-;!etW<5jsB4&lM#(V}dLuU=tJDe3C8z{`$k}wMg zm__O^D>Tq!7DDx=VJ*jC7IO8gc!rD88ThI)P{svH&qomW`%Ob zbTODU(8Y#X8|z{dTXyujwhFUuCZUE|L%S|w79}Li$~%ENB4)ALVpeEMxKIeQ&ZM@0 zS;@ROIZM``)-xKoVr`z>oEq&J4L8!*m-d9NM$eK22C_ z_AwTA7>jg$#%gm7Fcx`6FxGRNAkSF8 zFs&`4#I%m1taKhs`#q`XVj9PE7t;_>)%eC>8rL!~?e|I7ep^d0ZEM0b9AFx$!!+Vr zOyl$h)9hqNK*Y3Cp<$X+I0Dm5;nMUERBTizOj}5ph679^b(j_udQ7upHrI+RVj8P0 zrnSO#tiM=}F_`vJ<%^gW${O<-4yIWH^>$^&#|8@1789o70MkevriBK2Ohaf@vmAqI z$kkg>wahWi?AAvdcOKKsXFHO5Jf?*G0nP9x6m$^+c7H_v;8nFR_miSJ!bN7HXorymlru>y1Z!R;~T?^ zTvOr2*O9LMk(Th{!HE}fz>B1g7l~_mk;@6ZXcrd*L|!Zv8ZSD9BY4piE=^yrVxvOw z;3^5Ml$kMSZI8(w^^*7f4qunbYgi)IKh#)~s#x_qe(L%bNu8Pmn^ z;y@Q0FK(=hO>EiG1uqWmy2y)^ka#ig1nP*q$ZE@rp()`)k?~?Om%MmiZ$U z#mTPp5%?W_qOR=L_6=9Rwnuk=?a`|4{$gEse|ZL}!la(I*AA83EFg z!eInRg9?WcAnhs~2a*8aDLLxacahX=be`jdaTWotf8RaPB>|4O?>>cP1X!3OjOErI z0(_f9L;_^h2ypvJ_ZPgKqRtnxgr*0b0+mx`TM3^@NA@_%N@IYM(}+7=ixX7v8A?xn z*;PBX?m6Yq9ow(jbDwI{byl9FqwKTV-S3u)E~9ZwcNvY=RW&}(XtVCS=Q_rH_m`8d zy-`cGX9VxvOc zcYi1f?Y?^)+;>mv7%eFD_ubnun`^}u8I9GJ(OTi!`R|dVVYIQ&U45ToBCmyV%MbHe z_uX4#cTeB1_}Ez8cYhd-wfpXIaNj+tn-ET4-}(orc#^$N;b99YjdvHDp9yqkMQR)MLCxMt|RZ$PK40FT{Mt zXnoScefNbU@!6wQh<$|Z)rrqB-o5WW^jkQ6L@t*oz(%@~dB5Fv&ncVTcb~?zJ|LHr z|DBSVV_F}QvyW4-!zrZeb4r_QfK$jbf>W+=f;^{O>Fl0UKJ4s%OzR`gJ`cZqOz}GT z|AC}tqjyXTcR8jNc1AX)MVp$@DdQJf(^zawi*_^?BN|%JSRBzbckX{wZcj8wSy=tv zej3xFQ3Zw=(a^TSVMId{3x^R6?J67xl4w3IIqK+tB&pe0z1#KjF)fUwyrJ&G{ zY1tW(YsD6MiPe^uTH!jAJ|RcLOGCd1_>}TRMhaz>j5O;P0oK4>(@!ftHc(?)%QVn_ z5rBg+EmFrwp@Du(3!zobvcpI{zX(9CUVW@(KBi@M>m!a*&q(I89Z5Z&kwTlhjFdtK z7%A@*LLws}BQg@@!$_eXVGGvEBxdT)frfI% zbTMOE16^!mS{v(P6I*t4F{U-N>*AOeC8RN}yc4J+j%l&lj%kIagbPJBrj^V;uY0bV4}2wuF(3G%%7 zZ_e&{@pI1pKHW}r>7(==`-yr_t+UU=i~p&3UHtxwq-LX+7jc)o7$L1Cn2oim3C48oNFFnHq|();QR^sD}W(*d5&?ewD!G5Y+oB>Dp(t z1od{n8TRN{9H1VlLp|bJ)Ze+Px0TJ~|g@$@g;Rw_-g-g?~so1DcsJ9b^_UKp~ zpdP71y`a#eo*lEfR%{XVSZz_S6|Q6b%W^cRH+E?3e-sn3FO)lm37E>X#_pQ_ui|54 zg?+mc_Td2gNFDZt#(L~SbXBt)gMG-YYL+?nncez}W6)!t`D~|BkH@~y=7dbm&{zr? zz`neL2#MH-jEH@d5B7z64Ex9^?7KksJx#x&b-ipmEJKuGpBX}oVc!gyE?;Ux!oFLp zig-N4w@8L^#&j{*H_*j~eH-gy6I*ul2f6j_HWF&Lz76fVh<%ihurKcf>WJ9KYKwiL zDdD0a?7J8?A8fjCLrw1CZmfJ%k;`Ao+ckCZ%q?rZK88p(`!eP)zqYH;YBW*7n28}eh za2!Zz{ITTdn7D?dW}|aQ9me^gk?1*~F@Z_Xd&gf%MHh%PxQ>lxjRzAKlNXnHOB&|+Uy7moi zfuy@(ARB$e0g{qBBqgpzQm#B8sa=N<5RtT0Xh`Z5jzCgVxHR3I6becApwLDiae$3{`97D}+eZ*1fG1PpvBdNz@XlQdnxCTR0$N+}s zokB>&P-H|5rF=dT3WAaTZSmZP&0%W!_XNrUB1+YAq)-WjOk)9bfAk3 zLpRpNCbsP80z-#(UBpmINEn)T0(C?TWwpi7(3EhY$S^dSTMTWVNAhd&p1OZ4?y37x zyr=Fh#XWTo5+8C;-ES%_@2R^&womHc-BZU!E91~_%5US3TcunadYF>Pp)U}Jo~e4@ zr~e;>-(W1t*~g*S;ZV}`Ike3+z@g+B!J!8`L7qdmIlJf3L!8}n=yqrK9D1m;&jX#y ziq~av2T9FFFLdHAp)>5H3_59R1B(Wow6d`nbke@YV$ey;8jC?EZE7q%(0RDr9y$@X zu)6D=`v*E{W&wl-owT-a7F`NB+yLJZ_Xd z4s-@(VnJd$*6K}(?X$ON4@fKE~eoy4`!$(0A_wCfN8B6OAt z4LY5|5zuK0m!{WNu~DI*^V$hIaR8m94myKE51n>KMubkv2RcJN2AyPVpz{c=SG6reltHH% zLX1J@44E!pYQqq8hH}PqG0-{C#Ri=l>tYjIc60%qL%S|QCnY54%sYWPB6PCaLT6}7 zxKL!!nanM8Ht$ckI5Ou)3g-M$WX@L>%z0NaBh0y?v}Df9WP6|f9dmNc%9xX9;Jqiz zc^@s8nDaO#kvY51z`LHDeawj+<|JL8Ion(V%t@XR%z2Cx(4;$s6vS=UXJg#*eWb(9qv=qU@KdIh$YV<-!` zdfT>^Ic1sM`iSGsQhp|Z4XRJ2Y0ArD71Y@1<1bN0f z!`c0Ns&4A+^RU;=6|ZaD*(5a^{`a!&dm(U_>=hcFu@~AK(z17uqPnpdjiI-(^w8Lu za(f!1;)T^q-nCC-aL-hDFOAWJf~}0kXi4F)_f*lK!eN+3y9&pF#I$oHN8NfZNzFzF z(=g7DX++O~X(=qjw89*TDYy1u+F242F^$zeOl!+1F|Fe$E1d_^ZXp$2OyijDVj2SU zGHrB^z%;I9VA`!n*G|9 z(B_0V4W^}#0Zhv~g^-A8$cUIm`CwY8$1shI!nBk1Aw4}$>s4*b5M`KVh7e2D;cVZDU<*V#|)cKA3ijgc_y|?Yf9*l#nnj?*!_In8s?0 zX`w0MLLp2$mD&QPCG+CsG+BRY&%oo7wRv)Ss4_eQ@Aeuidt>0V+sGwOyMvO*Y5%S9 zxMzvcj?_5Zg<<~nc5?P{8g@91bbU^1a}97Bc}8&B?VX^+Y4L>qvF-?O)ILzp?r47O zaYq;QxOX=8)kEI8=`n|1`prW(ZPgo{YBKFTYB{d0d`D(B?j-Zd_q3s({pp9^)4OV0 zSG~KD)NGvnTj{R8_CY7O4cyX$PQqRY;MP3ogvJ<@Ev`B!TU>pXL@u|kcd03Q3$ikM zM5Bs@)tA0oh&KNtO+Ke^hiF^$3a!(RrZ&VnuEJr6hUUUC8@RSydbIZ0&aJ!~V(V(} zE4a3{ui&DN!B=o?b+6#s5?{e}q2#DL?oLv((Rnc_#^o*H2`(!qNKHIeHg8k6um6A& zqD$Z!@qm&PmH}5`j_i|LqrRW;WSWzt_XNEIS|TEFv1-7TKcJ*7L)4Kyprqp{D~$n4 zPE&2;9#C=*_US=;?^P`~pQY(WI(*g@Rn2;5PBSPPKc~rY-^Dlzv2(&>+^ol*aH-?5 zCqF~Fc3UlZ?8)&7<8biU6H*cFC6>95N!t zQ9c+K>M@KXqcH9p+qC!ZrFFfjHq z7&p+xhH)F~ViQ|-^hbCn{I?`j7)X}RSe&(G(9TDSL1>=sa zj=9E~5-t?WM^3&?Z2{v#3xj!a@*P>-?>R2lL*Xvg$ulYDG;bN_G=HF!=f)`{y!-u+ z#aGN}zE^2Er@2jxc4R)M$u(>9?TeAs&>aXmGpX*bf}%F2kXti z6jFz(zaz)Ys?V#A7_9oLdylD??%YauhBgH4%Uj*^dXm{aujgnrN`Hsxe_8wZ82!7s zW!j%Tf9GZDzrPLr@Jn*3A0DbC^7Q#S7Cx{4$B3z!)2`}=$k`AokH2dO6+1jlx;{_0 zxdwQeJR^AeA}44hPa8K!9Dcas_37~llA4XZPbh!kg0CFJ3@yk8F%dE_KzXs;o_;A* z5A=J_J`GU*yTTp)3TYz!BF{lC4x?XG7LM8UdyvuZmi_l;v`0#g_Wq+tYBoB~<_PU_ zDgvq+pXbzBkDK8V!f@jX>Dq&}WVrE0iBoYf+(_y;mAH1eF`R|sR68dT5IMC}Xq@U4 zI!>MSxEWKpG<}SUjS4l~I7ys}gW*O}$EiV~A8xc`HrI+Raw@CsaAPZ6$ND95j2Uix ztnx)p4P})OGwX3P*1%oURmH~!YPj*niBoYf+(_y;H8juOSj<5V(=Q@<}p znf|iY^-Aop3{l3ZW(YCHsWW7{e5nnIQ?FJP`EX+>XG|BvsRLbXoVu|tHnC+#{{x)* z0|~X^#-UvoIh7L9aAV#H)DbzA)pocsG$mXpG~D<@Y73m2%!`vB$?7=uF_BaMS?P{I zI<|PB808&Wy;s4h-xs&Qsn_Y@)CbG<82vjw;+nO2@?)!$-yOq8mjyn$R4(z+uPB+x zM~|1YkB_j!N2KfXQJZUkkH|BEkDlNJ&BI4eRJ^WQHA&4zmyht3d=y%c@ex7>_~=*V z_IyO4`sMEB`@~28rSM)pLSBJE#z&|u90!t*)+9%Je@arb(cvSE^YanWbMR3L%lN1; zM^wqJJ$&?Q5)t``)jmFI%P9G%<0vbghmU?;D!P2c5!&S=1XMM?F?_@&1U`B)>DuG8 zgpW>4e1ro&B6WO3T+2t{EEFHvIf;PCN2NmJBd2f#ADP0X>2Ipos8D=#QsN^V@DZuw zqoC09ksY(SR&0@vSZ(>J6|Q6bH{=+@M^90{$VZ{9F&~~x$65pRhFZnP28xgNCO*Oe zACWpf3JvspgiyVDTgx$ggxsoTne&m^t&ceFJRh0Qb|m$9J_>D4Y|-#h3K`&|yi*8? ze1we1N0bjAg?fyS$S6Mgi9Q>rPtv;HT^yDn%J|3(A;$P9??e72SojXh}uZ;J{HBY0a`VFYhMD{%ymf*HYk4(Zy{v}6SD zWKLNd!Nb7_9_cl^k3A@k;1Q>i7FALj!E;rAQe8N+Y8%0uT{R(|?k;Dv&Mc8%br zj!fpJBQJ2{cZV=`myh4kdbj@%+Vpnut-a&pcjVIkf1VQYsqlDHGk*6Bv9Vt2D@Pxj zVuwvh*Jsl<*8rQ6X9S!6t`js5o4!!-`owq=_g_p>v(b6A2F6)zy8g^H(IuOX zn7K}28Jia7h>5wihfQA~5s^(3#!rWZWWw0$IRt}Ip#kgU3;#U%rW1DtL)F~Vp7#Om}4e&Y)V`^#~jW=v8kPt z2#9Q2Dl|5A3LTrynqxMF%hQ*t*r-r*%%`C6EforJFvm>l*fc2gbIf+k=322uHf6PC z(^j~S_1~AHVbfRXx~%mpb(uYP?6U;_Q1OvjLmeg1%$j?)hVP!fO!2YdntMK#hTCg4 za4`2w>XtYq}B*$BB|RbI0Z@)@W0Nei#pC>)7VAFV>-r;c8;!SUXG z%|__Aa4L!3E>VEdTQbLKy9@5BqgMygqjjD!2m5iQer)S6;@H;3#n={ed{5Hn|L^GE zjbU-_W^;U}Y}>Ty&4JPWNG{2Kg%UA>irw^K&F@LtrXy7LJsBg@ylqwgi8A!D0(Mw| zbbVH6a}BTpc}B3ppE^N_74&vVXaCM$X}BjmA2}Y~{rA&l^M9{Wyw2=DC#l)+zad@N zu`pRyw*|Lh#8%x0X7Bw9jSCpDHNN)?jfN3hSJ7hX8jHI@ZtJRn#h)p_g9R!URyV&- zV6k=Xw|vb63j`PZU|@mn!f_zM;x8meUGkSCH5;ABePEmg7X0?)M(VS@=f{H}+$e{2 zg7rizvIGkO<28GZ)2$6F*H$jOZ!N}iBir5!eOLw-XtC0QIey0HR##GUOWZ3J7Qup5 z1B-2XXV*4+XO}KxZ5cZb$#044ILb<6fD#85+wymIZ7bf{^;c412durdRhv84PSe3?A)%mwkmblLYzuEM@%_ zhAn!TvDO2(Okb_FYONKov*|ThYV3B4+{=Y8ar+8=3Y`0VwpTAal6z;#Ro*uD*Rn-) z3DuP7vTMh#$sJI-bH~of9j);Uw^`$NPXC7bt$TJ>lQU@iO9NHn*tt`0bXDrmB{Y8L zlqQ$5hM9D|bpzZQk1po3olHF*T|%3?=#oMP&?WCMLL#~#BccoCgD#;SLl-hO!)>qCy58s- zmLbZ9+sqJR3}a@s%;nOgA&+Hqgy~8;-P%b+ZXBJKGPr?T**S z`>Jnkw`IF84!Kdn^6uu=xp4Gzv~RS9M-8{o1{MFWTc|r#z93^ z+d;+9S>asF1{IUJ9gAAiMM3-PPa>Bt=yK(`^n5WRbFM!wxb#)x$m3#SXucuFtP+ zt^s}}&j^0K%n3^T8ZTudIQ6ZH*Jb=|BsCk|u`Yb&SXXF4Hr9oZfw8VP%k7brLKjv~ z0!iopmBv{L@12K5UO}FQq^K+$2NFr&E;-u!?;xq!==@3p<18dyf2@n>5=lplb)~Qj zNegqN!`#|~q;HXkh@`CcjditUlw(~TM_K7SV_ol*im21wr^XT5g+>HaH9ilGv&Oo( zd_Yw1CS7}@mW*}X6e_t*pb{L6b&)z~B(5Fn3TL69(auQ(L})A(8Z3dXcRH(78o1ySe!dMp$#=1xyGzNu!tjmtsTr0LX*2QW&*3}BvvHmVOnz1hTdy1_k z7+$V?5e!3FB{9qz)3OHcp1xP{v4I-XI+F(4m=+Gkv`8Hoh6egEErjZosakfxuxCsQ zxmC?FAJa0s^%2LN2SfAOj-(zBhM~;~s+uva6fyvYd8ZH(!4Me{3@IP73H2BllF^T8 zh1|`UR>)^C*e5NFX%&tHf;OfVWNA!`;MZq zT%Yq#$j7ueN3$`l!~*Y=ODymqCA}>00Xh0u06Q!|x;_iExdvE(JR?}(gHF&qEbw8) z>kRz}NzF!=1@M(D5L%G2073>>;0n1t3sC67>W=sC6AK)z@Lm=`Uh$D{EP%?waUfaX z?<7Zi|Dz-|8yyzFI6n&zJqHVNO=s3zs=V5`r zmx?Y6aD;YQ00C8vZww1?`G5uffpqQtTEYTnB^JN|3y?Y%Ag*PBa2ARM?3_eEWPwtl zv4B%Jf(1HYyYg+&r-W4p@NHu|QDhS-_6jTr0N70<5+y&sy>2JW8zlj36o#R6w17Qg`ukUAC!4fHI4P`&vp{HbmjzPD01M=uLP%r*WJDIAd{`jVV=O>M&jKNL!vZ0nu|S`+zygJ% zWPu<{EWmNyWr5Id;grc(Aer|M3viCkV1ZA_B^LOUl3o`0q#S)LfE^YfU7rQoTmvjX zo)IkYFHX=rEbv*y>kR!@lA4V!3*akRAhaN30fY>&z^CQ*EI^?PtKZo-7TEcL87zRj z;v?T!0F{N~K(fG9lB2!$L!vdd^iY^Oqgmzf~0acA}3=44ifCWBJy7tdn!UE?c7Qg`ukUAD1u4RF6 z7K#PzoJ2rmfl{HdfKxbv1x(@c^b0CBDijNxn^*t`EI{g5ASm=KV8?8(6hUZP+T3M<6f(d9d8ZH(SpXT41t=dD2=y2XkkPY1$lb6& z$Y(6jCoQl*;V4-k$Px>1Tz6R@^jkP(G8RbY{lfyBqcd3GzvL1Nd|62^3;eeneJp?- z79d@p1=?H#EI^(SEbt{KXdV{$n&Nea{trpbMwbQfl`Ifikg)(l23X)La(fn_(1q2n z>ce~=<_PwDa0Uw?ulUF}7C>d;IFKyxzmlW9|8NO=s3zs=V5_wNJWA&`u>cNOfYh-- zQ0Q5}j@eu*w#Wjkwk*&J*RlRhIm80|2*W>fsWV6L9p#HG5Xu_M0@lFY)9)%iHc%{Z ztHc60U;$Fc0-=GP1rVy2{%Sdf1&~|SEOQnxyY&&roo4~_*^Zi+)mjyzil_eoMIT^?P!O1%9YRETG#M+TX^cXWLvYXCDt>hX+X4=YclY01uF71P}bc z37Urou2H@<+et>-pH-sU?cwoUl=W!w4#`+_< zJr7Xm!s_845)UlQeH-i93h$jKKwj~&Z#;m?!f_yZVAJVg?_Z0gW~1}lZH%*cfL}0m zZ)3&U+{Q|D$pa&vZIi+>9w^N5qdB+s@W79?&m#}8YCLd=Zeu;fZe!hUO%FQD-)^^s zH;%H>XjgKY?(&Mik2xg2jrEY?Hr7gerON{xpFh&)g#G#+pY9S_WUwv8!Vnr=-B z_1ogLFw(r>r9W^JAv zZgui(o3D$H-WvGmUr0erhn`?lN$TNbE zwmU(IkE;4mXHV}uiD&wVdo7n0udCS(l9~`~hC~HX~B4x4KM_Fwd4NQeQ(T=ozlHpfb={%IRTPnJg#i84! zERzA===g$T+zl5}mGmQdDh_=x9gTUFzLvPd0e5!X@{=PW;wu`?I}k+MpKMp;hb z2+A^rdV8;mjS59sw?*O0!@Z+8pe#~HSwW$vEIVd%t=J-EvD#8rD_qC=9yuDy8vD!R zqZAW~E0jCtOZf^imW zt^X?+qD$5q@hg}Vma$f0j@Xl1dsypuiHNMlYTpc3TShs<)p3-S&NIU`k%}&Bap-ng z3junEFS^}`)~sK_a1mmL>qOGE>uSji*X{Xmzk47V9L#W$I@Thto#En~g|+MqMnGh( zQlYVyQ|MT0)~{ep;qvq(6&n?5hU*R}d`%ee!NCj{sbj66(9dw$F`H|}7FmncmbF^p zI@WJ2N5NX_&UWopOk}N4Zuvnx>lZQB*xl2U6(1X`*{(a%So=i`4raSZ9czWg`q?f- z>wUgjc37+D7ct1KYL@wIm)WhqI0ijyna_4A^?23_ZBCrh{30fW46s(-L4-usLPlgQ z%7?W=J;qvO^s`+dcQe}+@)=+CNei=Gg(I<*{URpF(rg#Ucz3od^jkQ6ve~X=jG7mFE=EPhY>g~%O$TyO_`@m8_Jhw|UVaK>iyU5w|vEsW>fL@x2g8A@i3 z=bS2MA7fyLF-X^Ej5gN*V~}SAW1Qv$dB!;1+2>)5GZn9M`7Dx}4bK?ucnBkIi!v; zh-=4lIA>uDJA)Ar8KYEajNueI#+Ws0W(t?4=c(AJP~$mwMxl-8;9xw5)G$Y7&7fIhcTLY%d~B@7bM8W8 zZ3Ybo<2j^`F+yYgcn+fVvQ{lSjL|cLhTN)VnUCj~-TI4T&@+blY^PF>XN=J1E@PyS z0mjHXh>*w_$cT(V`7lPP#~6c*8qYaW-{z;c(0WzdGDO*Uju}FX@x~09E?;UxVvcL8 zihMjLlryG_8P6H$VjIudSQnevPDeAIbCiVIc+SwSi{m+zkj8WJPN0rBp2KQ8o)el9 zE*c`M>rh)5&q?OR$UZ8dNwof3ay-;W&`Uc30_Cx89AUW}|~_80SYe zqUS)i6qX@dVUF~aTYHf0P7)E3jnzJ6Ys)B+t>Y*wod?-2l!`90aZGoS4FP&VG`iie z&@5!*S_ZP+lXUIYT7qnMO~{4=WFvLRMqG<*oZcXto$LsR$W|&eWOE8fAe$*%n%+yr zMukGQyCr190kV-gWD5#Cve_}4YsD6kjnx*}TH!j@?=Htik?m&`6Ok>HJLdD8DL8BF zuIarM9~&!VyD%Xe4v>x1AzNsyM>a(3#jIM6K{n)8HOm~?%x?X~G3b%ae6~}m$0J*4 zbHbfwSSW=IAY0x+ghXURMnpEs2iZbBhHPXMvK^xj?CCwUuJ<{IWr#9lGed|mWSb$= zoE)lcSH+@Qh zYk=3tGlJKC)(P^wc7JD2yf&W89;kR-)P8}aX2Xw50V`9)i09N zY;=BQhH(~btv?4xbO~D{=HOCT23v(Wa!+pUfvpEfM1(C?`{v-Dap-no3jum-HM$*a&6Qrtx#_HNjz%~&KkRWda>eTV>JhNPa11;a5$KQBXzJ98tdoa z5M9+QJFwL=2Zvm}d0WeT4$kb>UmSxTw#;Wcm3lmEg*GQpX<#db48T_2L4-uuLPmrw z$_KVWJqBB3^mA|_cQXeU@)=uh9Re!#&lHkh705u)`Rn>oZ21Yk)Dx zGlDT5=>#Rl7|#+biq|>&7?PR|&l2qz5AJe|Cp01(<3UR^e)EO182Na#vpAM$=Grci z+p`4KEUfOi^QL{7YkTBJXRri<3oE{O5fF)@RA@xu6gr}qHREOqm!`j>VxvM0-~0>;?RRQ87``EOL=hDF z;Tt<QDY^;k-Y}wK8-l8F!hf1go*$nNvIAlW!X~-t;1nP)GHmtTo zHlZouLLqk2E2iR*O)@V|9ww{%o!Tqnn9a6g%;t)C|I*WnF`K<{%;xSrV>U06?G^fW zV>Vo~HcuXIbvEx{e`jE-C(0$J`gJ9dsm_;%&+9+^j(<(gKBmGBQ<1LERBf&SrXtS> zrkXlI^Dxzu6|bw-Z<5q(bbrT>uLP>lf()n-(g0NtKK+K=9-k<5Vf7AwzfTilD+=!& zia}mMNrq3TEFA0O)BfY5r$~tJs;UIn`^}u z`H0n)k6Ph6)}JQF7(RNI@)bUYhpywlm zRyE5pe1zPpW|{Mm*{zQ_?mQov&vqpBcs>ekPHfSPvZRm!KFT|VkjO{Khb(Z;&i z#FicXuC3yun@Ong(a^4od_)O}kMd5Sj>t!>wtN(t5-t?tqcf>3Olc+a;^Zt@9UtxI zcd&EK+B~_r)d?T{hxkeRLf4~b%OyVgT_ur^n%|XOCN}$O7<2j^Is5nsJA6dCJ|DHY z2Kb0PBlzgKPEg__y^!45@ABA<-*5B+#p`PJLXw(|-mxg$B|3%1W$1*)2A$Ai>KaQA zOg&El9;T>fVRiLm`vg-jQg|;+A-G^BgDG?uj@Pa>@=M1Nn;sLdqukBqy_X)%Jz87# zA7#BrI@MRdM^dxVp)8E^Qx?&4P*w`dD623>;K{8$l=Xaxh?K=@A7!;=l$6zRl$Fjy zSud7~E@g4(b}0)1RgG^9WpN>bvi^W{?KxUPSwEX73kQ@%>L`o2ma;f!8HKVl7y*&8 zN`*#QPT>g3GKEXim#WyPP?UB5L|HhXEK)~VL7}HCJ7#mO*dk@I+EP|4T*vxL3QD9ZY|L|HhXEK)~Vp@E*V5L(qN$50k>_117LbILNi z^%2LNr!4c?j-(z>S)t8|P#VfgAp?|^cM2hqvXBuei}InYP>)d-8AVy==o5DO`&!p4 z)59`E8D*Iv#297Gkm>TJHYCbAS5@Sc70MaY#ZcBj7aL`5tcy)-+0pNXvTh-vMp;9< zE>adHB+AM=fjS~(vD#8rXiB(Hh_Y@;ZGp0qd2w={tn1$E{h2rh_2Oa->O3(L_YM7$ z((=BcKbP$?{kt(Ju2`EVx1vV7*Za}BugDndkK__#{h5-;Scj?3*X#d0)%iG;qxYlB z*~eJeVJy=18LQ1Tz*yuN!B~Il1bN1Kxw9w6(i`HP{SlAbID7rM;&qMt3zC|R-g~`q zm+Tc9ov|0%8`3iNLUm(7o#|~XJv8=81$Y{x;)T`M{losDF`D4%Y5Aa4qcK`iI9?lQ zj0TmC14v_kDLLxBzapvGSiROwbPU{p*~lAeVaEAsj3Vctu@sikSYeJ}lv{gf>{SvG zX^hoA8f(iaX{_TYE1ieNUM&@NB!^e9a|%Y;=@smjhwAmlW-U9fU=Pa1zk;0;qsw|$ zKE5%m#|07AdmZW8A8QHg{d{6Q9Izg#V?E+p*5euh>)90p0g?4eg~obL;Rx0mgS!Ro60SJ+oUMag=)2GoS59>hY`> z+MGD4VZ9VGzyZpiS_bMppM9TthTHdni4J)8S5o;!Fr#I z^NqJJ<{LFl9PSZ6R^wXA(%uXH0Wlb?_a&tz>zyi&J1@USoGVtwdg&hVH^`+=yEiKl z>rqEDp2l-A^&W9K`Zy0eoJYDo=e4;8IFCFdIPWqi$aCJCoIP<~JjX};cJFP9*LCde zBsCj;EUmpq9Jle@;__mAoOozl;JL;4IB_%@t1Ye?&!MidIC^XD5r2!^p5CZtVf9PU z+x#yjpE;I>;DW`B-q2k*UK{8Q`K99k(%U;EM}759lA4XqbDA*DqPO+$5huE&w-NV< zr?8CP3UdUh+}cBLZ$=x7(A)b*pGwh9Kiq&^3IX=$V)uM_FkMP;we^ zr)zP73O+;W$uGNV$JRZk9J*tB@#OJ$Nk!D@-d4_`+vO_+R5d=&SF`RB=OV;C;_o3{ zd!v@zBmN6~xZ6GAIJifg)bSN@?LFe0v+$Lj!3ci8-s^!JF{F`H|}7WsbjJ3$&&`)-4rfO|5?RGg&IqGFbeJNbsUT(kvi513jJ7;oe{ZKY>{m!a*&o}0?9Z5Z&Z$g{9e3L>3_$KcZLL%QFBk~R9!#ANG z;~O$IV@dy{^{TdIh_bOHGlUppof$G+zSM@qJKcH1P|lbxW-Mu-i)}1vV_j@w%Z@I_ zl7@C&9802vG?tWi0(Hc(Bv#w8q|lUbp~%LPlKH1Qmc$h+8%yFDQST1-W_?O7vEIKa ziLBRsM$~8I>|;Ibupa69tk>omU_J7TV7<>eL7w&g)!9AkUFGcW)8NRZk2+}6wkO8( zf5bS`=M}GO+!sh{HhNhPcgcF8(HZNZz2P`xJybUq)aj+|&eFqrpOf3O9u+UF-g4hq zZ$;s~cX82#g4~StXi4FCZIDlc3dh~Td?@WI90&3y`u~s|b?bkU)NFKa@4`4g1QI<5 z1g5YI0t<8GvE14Nf&VTM5dvB5gTS_o5&}DpveJ1V@V}%Y>U2X=9MfG)LqJvI8-rriF156`zm=+XzOtWJ)*NQD-8mld)wZe6*e^HJG)5Z=-eMK=5*+RKvKF^u{ zv&Qb4epT_Yu|l?s6SCm|*+?C-g~obhLv&TM9D{7g)eDui%#qFP)?XZh9@)%iJC%Ao zvV}G$+-ZiSQpfaP~A;cK6 z&5-Hxr8XpFyS1u_$HV#dV!Tk!m@Wp{2D;dgZDU<*V#|*HAh&wmMndgYuc2KRk&O}( zvgMsX9TC}BZILZBC0sOwY`3MhaI04`FHUYJ>rd?&QCz+@Pi`No49|$Vyk)kp$t7m{ zwvxzf7ir#atL7bFp#Lkwyqp-0N-~M;DHY*3#*s?<30`U%>+IgRZyA%A8jifuMNOQ6AOm{ zA1y5$2NL+MmK=5T4@hb@I(Lv^oFDjzo&)$&SO$EBIkH!7?E${;N<;)cR{MajEu#d! zj-#w}9^m_-RK)Z1zLl*+*=f|z@=(3rhpuI3)GsI-KkCOB)5S?EAKw_9bvPLmdYrT~BG-y7;v}mrPPW2zCjCf`1}BF`{dB`igOH)DF?<0+S_5}Yuci3d zKq2HK5<=ntAxRxVh6Z|sM5x}Xt>qYmM6TWuu4RspX16}#DD? zkSSyUA@fclBqAg-B0^F=pM9YoLr5|<2>D~VtJ;SPU3xL1XCw#%*$YU_{Eo z>NWcb7->{Nc?OKMt#BAH(!|1Hz(`9A$AJXK!z4!?eK<+YMrWEB+pHzP_{ao|H~>ac2aLqEz{uqUV6=-10wOS$3Jn;Y!V$n| z3YVt4RBTizV0=^pMjQYmsRPEK&;z5L5xG`u5g1u*fw2{?Gih0lF~GQ6`Qn&kC~FK& z0F2f^y^dP(v4H}{M<-y!0Wgv}U%s485>~Sp>@5eJS;<$0izj0i~-{enJ!;y z!w@ira>jHqz&Oyw28h7Z4;Jsii+h!pym+Z>Pu9QVMJ`zxFTPA1_?|FNe1u%$ z#p@`Eym-DebHG;$%iyapM-IxZJ@9p1iHPvUY9D;HWt8yMag>$L17Fvdim1~~&vJxz z@dyD`jc*JdaR~vBZb-Uzq?X{(B?*skfJdYbkBDpWD4d1DBReM%5b>x~Xn5olj=&>R zxHLUM#YTm~qhC&VgabSxb$ApMdOWgYHrI+R;t{JY9<{=CtRFAO7(BX>@E#78$#68Wh4 zO=fz=*-3Kt@ey|Th;)5EYI6uPp7NzI1;U1s~d zecUBFg~ny*gvJJ)?A<-6Yb-ruU#H0JVTx)NR!{!KKEc!l3h#v}1Q*O?Foo{IVejri ze&INfly!#WsIP8HQnS&aER6G07SVH1Rtn1~t1w64$*nz?QA;T6F^RHpKv|@YvWRObi*uGiC_94@ z5GkuvXq4p?j-V`4xHLUm#YTmqtj8wG!U1KGI?4(PJ!RQ3n`^}uDT~#XvRdIf*3Xn< z3}v08e37z3Sz|tep)6~l-l47d*g#R%YN9M0P!_49tk6JDSqQCamSZRjxmC?Fr!2Eu zA937y$}*qrNb2#F722E#rJ<}8GC)~*rw|e;3mK8JC?CoS^%!N5QIvJEK4GV4XWGxZYD-z6Dd9pP$~u+W0%axh;^Z`0e_GEtsC&X=dAOcec>I=?-HsSJ7)&z${+98$h~a0RfsNews zt?`inif1pqR&@*Vff{?ZJI(1$gvA#lq^RPS&fAwoZ1b;&>VR zjvnN?vRm6XT>Y8?SM>U+Z6_~;^^>-&enY0o5i(t>S2=83eev70V~*73%C)uFDHK^f z{b*`KZ~;<=Ug$0y2a>REFFERxJCM|DbnZICIE%2rXVCsUcjQ@#t{@x3HSVmZAvC@J$!cJ~=C0WsWPrSk+VXj0xl!|yJan~8AQk0$U zI&%J&h6sIn``Cd3#vW(WZ@!LEpMOR zm2~ZvTJG3hO)do<&efGpFEf{E=k{ui)bSf}D(M`RWG6oSW|sj3M1Ct38oxP(j^CDc zEKSZsA&&sLl_@-;Re1RHZYnk^JiMAb4uvn#^;mB^mSgAP)f%bex1jLw$@vs{7>^FI zGlGj$(u&Rat*TiM05`pp*7TZbd^e?myQX)>Qe!{%L;4^%_vL!uZrr|-?dP+-df|~= zD9H8fV|6lwH9|J8DJU1KU~m?3~`6`mK9* zR+Gom_?PNQOnQ~I96NVbYow0tLgRN%?nIG0s^uNA0W>2XmRIw1>+c`5>7<>@%gcL@ zsg{>l?xNgDZdD^%=DW&#)#ekfQf*l5%(5fcvz_^DCsU7SyU^yuMGf1fkO8*KJB*OX zcHwNfuf$o`@d*~{F}5S4*zVy6YwzDB$hKvOGPW~Ah%vUCA=BkcZAfhQ2vy;ZjrhZc zP}Z1khVKTt`ESFKwy|zD!DVN^c~N}#NQo8S?T**S8M`m?9VIO9zVw0G$4_)e`$k)M z)Nl)pVE?aMxMzF|_cSfc4>k5;Bv@8kf(@M&&P5UIqu8H;V3T=qqKBJ=al$p7qPjf1 zQK#y~N{=e$QGX`Rqb?QmsBaZpGLQPNO8q?QOU0Ym-=);s50h=HxOJEQ-TW$7^Uae> zObg?Ozo9t&B3W1Jd&s4O_P$Eu_~CK7+P_!-_mrlmtKO=#2DoWxOoiA{S@E{n2Hxx&-v$l8hpIB!g~prCKRA+1WZc` z$JOs`8dNwABpUy`bgK6rKvJ{Od2u+#S!lfeV_1kT(RjpTSW;Mq#)UajYHsa89Y*eVB&0j&G{U8GeLz|=yje|lzv}tEVt`%Dx+GMpI+H8gEO!@^m#tdyf zSotFUhO$a7n)MhKYv8WwLlhqysG-eYrGfSs790$1k~;hi4fI2s2-SPDwd~+;&tq7S zs~4ARnGbE6-TH{5)Z?%DY)4X$$KTNAgpLjVrjP;r%{zsVh`-2)Lz|S(2U@7d@Ry9j z-!n9@HGPoQtJ;D17)5W0gKo=VrZmf$)W73DE?Ju=FHHQ${dMmP{CAOD;=hM0nR$QR z#d7xXA9nbUbbbD7a}Dqxc}DQx!r`tv&GdNQsE>#cCgXwPlp>)p3-S&I4a7QW15!`|CJDyLg0vs>U}4 zkGO<@N2{c357iPpdSb#O9N-bD!z1EaJPK!_@W{?d1VlV46&fBng(L9D6fR9KRk2Z_ z@Tg9BgabSxb$ApMdOWgYHrI+R;t{JY9<{=CtUpGMF?jSi<%@U}${O?8$>^XpaM$$l zijNHx9<3!j!T}zUIy?#u^mv3&z35)cF?fVry^&qZ9FNRyeZ+C+@yL9(BdN#ZQD}2Q ziw2KU$N(PYokB>&BVE;g}cM^C|{o40s0wCf@sQ9{C_yc4J+;t{JY9)+fa3x)9L zLoFU9^Wx+RW0mIj2mARQqFl2!Pp(XSbTjeOa|0heK`!x8tt9f%hs9`@XnbrzY<9~q zKK83}_VE#R_=t3UK5BCf@DX`N@X@b1L5Yv5`iai|m;WM+*x>W%eqHgpn*9bz&4!=k zZSSwcU7}NHT!v0)Y|sfUrmnH{z|@)oJWNr|!s^=rh@sPiZ4bfH2atyX1SMN&KGRHQvTYquHdTcYF z?NsXV*cRHHkf*`66f%Hqc?S^^u?-m!+bADw3-uVbkx|%o%r;@$Z)sicg%8URW!Pqh z5M$UjL#E4@+K{mASXB{^hdA9C${EweVB0_!8@6q%i%o3V(T_b?*mj(R+Njphu8Y`4 z2?^WsPN0s6ZLGG~7Mc<+8p5{gQ(KtsOyVRYOG=fc zeOJ|UC1;n9Qwo~0$| z_heYZCNXhNz0g39dkED#+O-^md&sS7mO1X3-TH{5)Z?D{Y)4X$$GyIb4w$y09&-m4LjP4KR66?KONx^z|7GFLojM4p(oPDf^ z9o8dVpY_^Y1FT1$5v=#ePLOB4KXLZzCyDj`)Y<15yL+YLb&Y!!NzFzt>)|e0FEl!1 zJ+wC*hsLT#bz`y7JoGk}9@cw>+@AHQcwzPYePg}5vcLL%vOyCHax>PWC57X$n?O|> zR5%VK>;1XpsQ3PYq-LYTdKl+tJ)-Aey%d(QUSW>dm0NpQ@6RM6vL35_tk;%NvR=ng zRyq&s{iRe?HAiw_JytrbXL+c;s#))_UQjlk^*AxQtY_up8^d~B5MjO7kgmN z01X@F!vX7&I@TkuWj(GDu%2Bp5D;0fRA{W{6pmm$Q@AvJt%{8b#d=Rgp$+rlfb~cn z>jj0L_3VtuwPK5`$7;)Zt#F-5et@Wz5Wr#BFGed|m?wcXg*2N~a?C4^cZ)n#=?xTdneR(HPN8~*FkdsqH;emL;uzoF z;@-87$1%R|^o;S{LQHq(e2kB)S2o7?EcxFb#`ykPE^*(Rltk{+F}dlZ`hS4xeqP|d zH^|v=-?Ky)Hsx8>Z*=yz9hEQ(J3L6bJ`c9J26&J>BY5y{ogmMHmpS{ZT?4RlwveuT zdG|(syYNx0W3$49dn+A?HY!3axy6W2lhJB~Pl5=oYL;V25V=*&GABW^TOVEiG&(aaIa&CK{-q5a#BuEK~1oKXyj!1&6wj>yu5-t=X!9Q(B z0F!xf@^TxGYgq7_INy6wG2hF(9p0gn>b!yl|0A*>^SWoad0>9WaG`7u$XSqU*5=78 z(ikAT_<_KJ@0Uv~c%_oag3U8p4pZH?4J`OUIU5%A%!eK3BVC{Q+FS$7N1hSP_aP_9 zGv5`?{u5zE1FhIOFGyEjx3m%F`#Xi`0{2mpnvLFD_i!iXGr|k)%?Jdtpp|_7nM5H%X`{=DLqolWvqpWludiw{dumd*G8>do--YgH*>y74G zcIYiA8&7W>|6O{s^6`zKH!g6{+dq-6eLzd-?Y9%X;eg&q9la6P(ikP~13kSVw5nN-p*Q4KHOrjd%x-Hcwui*zH2atp;}c7rDf4|EfgnMjZ{i9i=*}`qOgsaT|8HjdXo(YjX{7 z8+k@>+h?30&uyP|_VYfQxD7jJ1nJ6?HZ)fEIfdxb_U|M$8=l*E5XCYBLAZ_E7MB;} zbM-=d1CuSr=jtKbxNUJ2c~MZz<3{Ed<8$?{Qh?_+s##clfI^oS=l;pX6WB3*BXbBY z@XWXk-G$>oa@*%6M_uv-lA4VUw_%*cZF&qy&vW&#HqX@~y5zP)b{w+abM;bK#%+Z; zB2;ee;kJL1h{$cM8n~{bM+3jrU#wEi&J$Ju7ppLBYPZWr7=LsX~dnb#R)3- z45cT(?5Z7G_ndO*j_t*B_5MRD?0^m2#;MfdHp@fXs+#odHO{a8x<~BlmCap*XW^DRgGikaG! z{GJ_q>^XWoQN%q*&l@c=yZ(hvcfU0 ziJxBxCATya`YoJ3qM1wNvmYNM^Wx-}W!1f57u;3HtPY=7N1oYH@XWc9XTD$X3}a3^ z#3aY+-#t5nGj{W2#meS420swj=rvtB8^0`TB5u*N+?&SYk*(KGlE~f<^*|u`5$Lr+1v0-JibRfSL2(C*ZKS{l9~+wv6)Wz#T_f={!#d{;pI+o$e_d9J*c3KtNUF^PDm3`Mq3> zcz*8>NY}oiCC~4D9v^IaoU5)vICy?9spAad#9qc3oU?p(+Zl|2$Qh+V;|!EAVl&RDYSsg2OuwhKYONKo z%Ub`P$CdIsGwu zth@9)-xshm?0LR8c%Cn*AHiV@dy|k%Z~hTCZwbhA10LGDC0^L*bL8S~hJF%OB1`JsX_SH*+J>oW5~rGCup-eOAZzoOLJVbXWX z_7VL%CgtkBdGZz0a-CBbHhuY!=3N!n$fbk!pqnNpm4=DtT|ch>?b|kO`XBvQ^(JNL zV^ZueDe3x5+U6QyQu2&o(rYK;x$m?#}g*9vu1HSJkgedfM#@}ZL7%gOASf_jaU z*+GTl+rQoHmBO(;Cs%9iIvZHKKzG~SH0+6XcgAC&eK^Mv&$(1P;D&pSx&9xnTzji- zt2;_vobK4G*4X2zwD0G=u;J3^s8rfHr_rZv=WVpKn*I%U96mY}#Acy?|IJw+s>*bV z97a;J(fQVZasF=&M9=Z9A%$h%8VYj+_}m(IKW`^#-YK$8BI36OR{Op+v}Kgv8aj@$ z(s{l$94-}hr3+)9TuI8KW@>q;UawczvNQG>l#L(z_pYt zPqf8%k{1HG_D&HTd?z7w-${sTzmsqw<~xa9mJtxYlavbWJBd>`;yZ~cJbb!K#YTnt zPVyoYz9f7n!NGSDQum!CDD>Y+?2O2@Vr#yWux{T;mb6x_wc>R)En}&%`*(_j?JM;G zlzj)mT7C!FEnEB!5~>*kr_5(t<9AN?P``DLzJvT;`VNAF?;xb^J4k4}{|;geU>Og~ z!FP%vx2jp@-$Bf7{l^jPzk`_1b~5$&?;xSgiQk*=ASqc&Eq?tyi@zLzI07F++&4?;tZ|x_qe(={tzMQ=~mMBB6(}#&k2^K?b_n zzJqM6n@w=p*~L3WhIU{44nhg(J4k!9Z?uJc2N`IgeFyo!ZlS(|jBR229V9>0*o*Ny z2&?UPkkFKHF6ui-dZ$P-cit)T0FCZktjomZN_Qx2{(dOl=blUTOg3--VDUfSHJ+-} zf7iIJzC&Ptm{M=&JIHHgd%OPKcMz`T**irp*LM_qr^pd%kiLUlPf5HN^CD^6s_!9s zHqWLj! zLIWF%y=x>$k5Tqbg%&h<+*gX`?IXv??Y~kWWnuL#e5IKG(Ttx_c<)yV8dZEju&)%f zt#H`eM`&W$N1NaA|sD6&n@mj?kB& z(0&Hb8AZ_HwInyvdR5ypL>WPw zA;cI#&yeZzr8Xpj?!J~JlryG_q33}vHn!YY7n|6!ql?#)4DGr|&yc z2!=ex3Gxhis^Y=l|ObxI=J3WCnNWE*!>i$S)iRlHtyj9QD;%BsCiyhQl~N!x23P!=z2wFDJzsU<|CMKN^9V*>3NEe4HRYl zVWKP?P!_49tk6JDSqQCamSZRjxmC?Fr!2EuA939Mf8x#q%yz3f+t(V~GuOrp*JGPz zT0%L1>0nyuH9+XSm(a_F0g@2SA=HE(k`Q`AAoSiL^pZvg(|hkN^cKkfy=$$bU34UC zPUgSy^H^J2OKb0MYwy|bx*Cm?XIbv^3rRb9mSufT8OkEdN+BazRyinyM3#k&$g-%P zEX&&QEQ=GBW!cwFE~EXX^{qvDmgNSE@hodVW_DicL&~!HUpKLOrVKGz*2oZhmbJSf zcCqz9S6??7yL6FdQA5hI%0Zxw$gD;h>6Gpr*_T(2M2>X_m35BwLfKxg|FipatXRdjP11W4uOOFltgESr9Bc88 z?DXEmE6KSm$HGpIMS1EuR(IA&j>S0>a;z(7g7O^eDw#dySo$P=W?$vKiPu!T*0?{U zXgOH=vK-uX?q!`Waxb(mGA+-&P`$ADdlS*Suq?^Ot}b_;jnVM>_PxLKzskmLeaC@p zj4o8Um1kr0q;hyRMu#fL|7A9IEy>a7U7Moip!fS~jH_p3M6ZyIrLZC!tIUxYmDVNM z*fk^~vN3j-Wn*0(bvD*>)Qzr^ja^47{3p-us4=BOcJ~Cv+|Qx;re(i(N6nN?zoW(v zMnBi{`teQ4^;i(e^{z*`b46{*_5P7W!{3{TgItd?%k_xsay`}vay?%$5D>Xut%OLlv%E43iDjge_qoq6D(&QXpY=KAOpClPg^c8V9c^@(&@1uV5K5NJGK2B8L zXP-y8uJ)VOw-)7jpBpU3^S%L@*?FlCDevpQH__^uGQ{M4BSY+Y-|mLk#nuB|y*F{} z(na1!4Jq#{2Z1&s?_;;i`>ZRrXejSXpGQgNL;K!DRr|^ z&j)Xj*;n~y%54;{b?~+nEeA_~8H>Bl2kl}M`5=8-yp&*))En^BfHB|$F7b#b?iCnMpsE4?;sUT z%M`cNk)2-Z=;zRU)3V=79ZlKv)RCWwMe4|ImpXRB^^Eb`9 zbP)&XB4w5?S_kuV5ur`Xc1pU4+@@t)ri*U(F=CeH>7x7mLefs2E?S>csDJY5`+nVpyVkkZBe=T)qp zDML)UI5NbZF79rKU2Hwj)#p{lE?uOH)R5A}au8@E(nWT=bkVwE3x(3f^m&zJj?b%f zzl;6-_+9LytNVn{kKe`Ksrp^)e&u`ICp<}IeV_3DvOQG)XZHzNvWoAkyjgz#2J+qH zQoeXlMU^i;UTweI^2K||xh!AAPQFNa>iJ@K)=0j{ITP~5duD?2eDPkHJ;fzL<>Ew9RHX3;sYc{1N}gX zmV;ith;j9Nk?0lj#S~WLiv*C zMDB=;$Q`Ml+|ksL(w;KOU`%UXxi}Kvj4Ho0M zh&^}Q-4MIjdZ4RYjboQCaz|=Nxnns9v=O-@yIt;RU9m-@xYd}q-ltaHb|knQpMKg%6izKVN|f1{kx-|aY;OS$92RVa7l_t^T3#lCmz z|J$f-eMDZ4WqBiZ@0fuyg(|D_1d*Op4o?t~Upf9S^T0<* zjz;g%6fFn62LLe+<$zJn)ec5qTiHo(Gn%hwSQ5 zx>EcRN6%3=8UZRUlKzO}R9+AH7^(0dLdyf0%$R{W!@<6M%P7;P*59ysfe*V{rkIw4#kT0UM{(49pydIJ=%LA>m`RgGO z-L!0bdEk=QLn2on71y?WJ*3-xyqK|h9_T*5sI-&kf!61gLoM>a6f%+rmIFjc=io_tJtT9y|9VIpH~aBX zMs#ll_^W%8xqCfi_kPG9DjB(p@{yZV_tPF6IniaSoQS`Jy@~RgJL&%{_u)sjct7Oj z^mn!Xe#j@vCFM_6q1;C)&%XDlExkc=-?`Mr?NrZ|lt(q~-|B>AIS_VoAj(tEfx5Fs zav;u`kOTc)CMeH=o|M_s`yutE?##YQ!t*r6>j(Ym6fFmN!qdHY2e&6Y>AjKGX-j4n z?~O#eCo_xpMxuIQ@q`Dx3rm*pEZ!vf6uI++hlcgq>#r!`S^Z6tUw-~T!b2CT^u-e% zdQv(3O_Fq|a(E_0zbeQ7WhV3t$zPpbipj2y`eiXaN8RWuFN^sHsR*6fpF%LF`?(4NnigN4s|>wj zlJ$(&xjdV4=Wn#-buKRkj{b^C9K6njGRswn)4jdR*gDRSH@S-cup=OHm0F?aDw)D8 zR~dT6q$}KWM%%3+G}gVEL-F<)@+^2483B~FUHpVx#;oX((7Gb z%EjE%UGZL zxl9Tf$z{p`BqVYfWJE4Q{p2#%j^{F*sC!!WiphV{e$)EaqWqqg8!X22ngN;Fd8rR6 zxA9j@c5@|Oeqwb^8D{QljSRED-eq^g?1JmTu3j-YcKPDI7B!^TyL7XEw>{+bE+akk zJ9m5CL%rT*Y7e{DyOdLns~C6g*zNAzSy$|5QF&^5#bh#fubAxKG5OobQ}0yesn?A> z_2?>3eVy`3?%jP#Wq$AODatjmze#0oC$BwBIqRnW&+=N9_v{^$hwpoa>U*F)KlnVk zl-IskMcmUnzjE3S=>NM)lfD=)$Fh7DJNYc-spqrZStI!@=S;|FUziEX^Vt_=_KA6` zKEIv?J>YGNw@hvy{ic2QJ?8#DK4#yM`aG|lbkdm)#NNT5$;`n^6?^a(I%sB_qT&1% zIu|AH3Oc}9xIOXRe_(%n-NmksCBFOP%`SA(liK~;p61fMg(XXK z_isN&vJZ5wx1Ydk7hk56^Q4zX*SDWa(z}1rW9G>*j zi^}1-EuE%+^Z>C z4tjU_FdjJK{zvI8BL~kdHNnocqclTwzi!D#V6ZMe0z-72+n$DxqMU;_cb-x8`P&M! zjP#`Ix)Kj7a@$m!nIp|CtyxWr7a_h}A|khC*K^xr^bwe2{39@@%^K9rsNybPSNXzG zHyU;o7oj&7)#lu)_+l!%kH8#Ly{hFkT+_o(x?yu*k&2{0D8c7?^igi@_wMeQqUm?{ z_<`tW%v9n(EP2LEK6*(B-{Ll3_VE{1%I3i4{B@K&&)4=?<)ben1@pUmILJpSvy7QI z)#Mp7>jD|GuM!A|jJa0m8FQvE%b2&0-SUsWaGNjt_=_t%cK&)*8w!tYW-mvf-`&Hp zb!@XknPtqT@L2!&%Yo*=f%r)%wer&uclX%!yL;=+PA6PHL9dnLz`AG3c6V?6?C;eY zn1B3bz0Qc=pqR*rt=>9SI{mSy_m97Dn=kwLi+A>f`5P4u8$9$6ws;h|2*YBr;-TL`F>gWW?5vXT+QsclY$$rueb9yL&pY^E?Y) zChZ&qRF0GZ``ta0rMr8~as5`wKK`;n)^vvEY`>e^xY>`-fiq-x_mX*WcW?3Sm&24R z-9@wLu2s(TsK}YFR^?3OK-`bJxBky^Abwzrdwbi;k=|%I(7(u~9O&&T;@;lkZ)b0* zHlCz<{>1L>y;&zL%Z0F$3sIhWF4Ubhk_&Opgk0z?nV>uudTVC?*-M1&dkS2CuCLc; z_K7)?=R%RR1QybkY725)11RS%{k)#-y7-v zRdO_X|3=Yr(7T0)arIkxMAvD~gj;witVnYzb7UN)bxE4@PKk&#huvkj@VYwcTX;Q3 z-RLT}@cvyYd~Vw>GnwQeJEc2*4$U_$`@M9>lub`}_`&F>J6=D&Jlz?(LCB)W4Z`GD~-e>uwOTMv(6Kih+PgcWQ;6?qmwHbZ6)Wp)1^+zfaYM zLM3FcLZQF!83zd&WtQ%k!u$rI|3s8pu`O;8vhOzt|3iDtPA6VJP5+6d#h$a%$^j!J(jR0*`a}JsKh}Y6gl+z=cY zX1^i0yJ2?0^~08_Q;n+_Hw4-3ZU|ae>}OFo1RJiWeRC$6H)d`+j^=2Kx^yJGt=5%5$%(|Fc|})qHJsxNG4%h&NZgen0Soa%s|@q9X1G zeoNXOqx*s9lqP)$T#jWqFm`fa%2UsQyR$}eV9uG41AinFlycx$%a%W&r!SUgL4)`G zILYt(vDe-A`xpn=eZNoYSRnWmMa#jZAEB#W-}l2^-}ketP~7*UGn4P~eOxE!=`T&J zZ?Apre|4AdvI<{%mk+U7GMn!5p}BGlXSx6XZ{~ekax@&Dp=dei-OR(d`prC|>nwM| z&Ab#=WVw|&63)`PB+LDTL`0U$?y{SCT^);ic6Mt)Uv%y{>PA<&nfF<)>A=lAeBNx+ zvfs;YP0{r1mU-XLZmFbc@#Wd=(9JxSId0~Co^t0y+Hy1RHKb2|GY<#3BW0G|64%|# z)_?R75ZP_5(6if2VV2zv-OO`^$Iic?YD1xJ=Dik$elrgTH}fd7?A8?KH}m`_ zq11{kZsxJu-OTHR>nG@Qa_shI-WL@U*{s!Dr#VA6^SrYs%)g}g=&Ww$y^hZM%{(03 z%%jY*S?g?mGY`@FvbeUrY<9`bJmfYl+wx|f+kL#4v3WM@KEJ56lV`Km=adO9Zsw(s zk!-dcAVMOWMMh+^)K4~R?RYlJiTTYuJ9}|6&(8A&@|V-AjT@+*iz!FaN3M0kvOESmc?{*L=P}(`BY6zxOvq!tmI+FE zjJ`^q+0(te(fp>kXZLNz>!%Pp_%pVvwr=5b%*X7?45ujn|8K;7S8_BY-=kYWIW*t2?DtX?Q#L(SVgC116|Wy(o~jJph+{?LM%<4mcfO)6H{xCo8~sKc z4sOIzW~mBs-HkYY@JUsC89+d!Dz!pSRWgNHsxovV&J}LXf2?Xlp^~XLpwMr`;UJl! z%u*FonBR!=pNLW`w#AJ&_WefO546|pbmH~X^g}Ey_WVYi9lu8uDL%Z0wZ0Me6WJnl zv1aPjW#~qncYbUBQ`-08(T%t_(s{oThl3k&lv(OxozHK?c?a0`QkNw+;*hIvduvlUEJpvnRfEj#roV&T~f$M>QW9EA(6TuBT^UYCv~xQJays3#f`ZC(!Rcr zZd;4;8*y&17*AscWM=23KBQE}Z^U(TBW_b!T~mgc8*wAU>^I_eH_R@$9_;Ey+}P!d z8*$W-Zp3x7eYZX2M%+jb{YKng_fR+DruMMA5m!z%u43GXW4F5zXI-(M#o|U>GB0k# zEx!Hy?8r;ktGx7zk(d5frB3PI+x!CMk=$?N`)B#{caM(ya4%hQAMPiz@oZj}$Fi6g z_u($0{8!(Z)-R$=dhPM)&9>Voe8^mL7f0T+T%fdyNY&o?eUJ)&53K zEsOt6(Q z9OJ*xR2~ygXPvZv|M;_6ho@(=j)_OJeyhgRi{DYS9Blvc^y=t2RsX?rY2(KI%b(0T z^}jlx#uYN96jo$Pl{u1@(z+y5`n5zvro`^DOsT7*&XjtNy3tiKrT>wN(3$@lDBPnAPMm%_UUs{9H%mGXDZB{mp7P$Ym(AT!y$Vm$AvL9}%D02#8#!R_M7* zrf@im%T!u2sWlUk7%lMQnwPK6gF6{bkmm`{;PPnG}KGl2R z2+v`%H>({{=PQTnyvSFqt|=hn?HJy{t@#m(k0DUL@@6{dpSi+8zCxMhE7rk0UqPt8 zEwAmAd3U!i{T z6>G=y6;4#Xayxxve14ero7T4$<@t&mEXMPd0h!r(sShb%xxJc*IS?ebdZr99xyr~8 zJIQx9#4ffT=rYTPO~k zFuMt@*{{@+d1H1{Si{#daTmcLwO&T{TO z{Yf!Ajjv`lb(YND zFH6pBqSm(`J;ZFQV9%I+S~aF#Y*Mrw^q7rtWo8q+0<%+C!R*Q$_$;kUn0>TF1hd&) z#_X<+n%O-^-RLUJKAlwbnaw=tGaCU-i*E|Enbk0Ri*jdOTbTWp#B3Zen=)fIaUHX5 zGK<+hwGj}^t`$17GldhF?F#kbcU2n-#q75xX5)a_lo_*4Va{xyvZYpR!EAOrW_Q9h z)ep!qh1tjJykNG~HDy7E+1^2Y++Fd}K{5MniP<<{Hf6?a>tN1ogf=bPDa=N$KJKn< z$!xd#7%}g1X1mWXB<*MaW zwJ2w{8!X0|Js>kXFZE%J*;db#A%@u_L+s4n-4MIjdY~(2k6pT8HZ>$>mxDkX!EAOr zW?NTmp(vQ0%!i!WELuHgzsLTaeR{dX>@%wvWcC^59Ax%cf!9jd5jW6TAYmQ&_?5${hGCtxK4F zqC^C<*D$G8IRP>q6Jm@nU0Zof<3bUEjF#DX8J7>@qX1_f#8wbp$ z%$QAF$84L-Vzy6h1O&5dh0g3u;RI&8!p-@)RBb2}v)_@JjRR&=X3RE)IkSDrmRhj| zv)S#K-3ixJ|2;XTF#Fs(FPLq0Of!9jd5jW6TAYmQ&_?5${hGCtxK4F0f`7^v%8GhT^%*E zdycx%RhWHIspvDCdC+Gz0-6@z6lOE4VfG~`ch0LV%zjs5HV&9gnK7HVj@dSu#cZG2 z2nc4^3Z2=R!U@cFg`4w}Rc$B~v)`SVjRR&=X3RE)IkSDrmRhj|v)S#K-3ixJznC0T zn0-l|7tFT0rYz_%+dH^5zm(#mgJSl-CT8P+*_0Wxt%EtU5!$qDr!X72`qZzsC9~b` zW5m46ne9HmkhGIC+xnb%w_tV(8DVxgD1-#FkrB+Mewc0TII}rX%+`BJj+$Rw`}(xK zZ7s@~?FNf+W)H~B&P#nr%zmnxD4A{bOc`RBJu<}3?A;Bqi>(LxD=_9)2r!`}CGH=YDA?qPzHjCEU?3v!^g4ypgW?xz^G5c~V z2AO?XIR}}21v#|@T#=&XpwDc4HM6O+WcDA(k~5pA_3f7rG21HGGiF~&jj0z`rf50n zF&pE`%qDmRW~Z=%*_Ao)Sz4Dc`|=VI%w~5Pv%5NKX7?O*qpL9cDpJvBHuIp*Yy>nd zzA4ORR>SP8Q|??wTbTWCiP<<{Hf6?a;yPyAWEQi1Y9k<+T`P2EX9_1U+ZArkuc2x~ zp_u*eiP<<{Hf6?aQdt82=F4zs<3Tk}6u zd~{IE{*T0L9599)Iqcvl8GH=YjF6$v=HjCEU>>J+bg4ypkW?xG#G5fkI2AO>wIR}}2eL1xR+<>Cx zpwDc4HM6O+WcDA)k~5pA_3a-IG21HGGiKjVjj0zmqG&njF&pE`%qDmRW~Z=%*_Ao) zSz4Dc`+5=)%w~5Pv%5NKX7?O*qpL9c#!}H|HuIp*Yy{|&;OM@Do(VkR;K|x<4LwiK ztcKY)qujZ+wlMoY6SHx^Y|4z;#C6QJ$t-63)J8xsyH@DT&J<2ywkzD6-(1y(LNWV2 ziP<<{Hf6?aQ)Yr4M)$XWqi%E+X5U#V`pjk?^qGwSeHiS&u4+S}nEn35Y#cC~GGn$W%$e;| zw$zF(n9Xj->`u6*`d#Fh!t8tKykNG~HDy7E+1|me`8^dM9Tc-akeH1FW>aR&whrdZ zMyS5At?d+MBUfJ>*0yA}+kK3fcR91&=NFQ8a%Nkf6YmzxP9Y=AE(e8>U^X&>+0+lS ztsQ4JCyLp6S@2QwyK28_eQQz9Y&TepGkZX0c3$d3V)o%`qGYz!Gi8Wj_Q()Bvv)Vd zF18-%>%r_JB-H<%J$C7W+0>AjT@C_m1hd)gm~CCLg+k0elGcpb$-FUJm-P@bn?-AF zw&9H~nEgRx_Pyj1v+t{7klFWaU$?1Qr8%qD7m`?^ES zwhH!)*$+@->cs;oS`K>5#<()G30{HODXd_2We$9n)+NlopF{++* zD$M>9spvDCdC+Gz0`%#4bWdP5vl?bUh;rxN+QRG)CT8P+*_0WxiR+kclUdC6sf~bO zcCFBvohh8aY*)BB|8rFv3dQUXC1&G**_0WxO<~S#pR%P^Y{6`HJ7#ynHP!!Ajw#G; zbzU&r>YB2k!))*1)_h0t(Lpi$!-?5AU^ZpOZ0lgoY=r7d$l6X}HgfePWNk}kyWPi# zd6zTWeSRTnCug?xIq`16>=ZJ>>~c^D31%ZBm`(jK+uCtvbE24iK+E;~&$O>EA=}oX zoY`)$7-#l?%hs5k-)kMi`t7pm(!|ahEc4qHxh+S+w(6@)#TN3Kb9=mkGY-&i% zE(d`&g4yhL%(kxBLLp`!M{CCHWZsw^FY6&>HjCEU>;!KVW?xQ!3-%#n_FOJ8`=Kf- zW^d~6%XpuWzIQC=AhRDXrYe$o)Lt%5yc_9NAp zdhwSOEeAbjV_ccp1h2sC6jm_1G6z0O>k?)^Od^8W>@H(=S4Yk4o}+Gb6=wgHRP>q6 zJm@nU0Zof<3bUEjF#9o-I}g?tW`6`=@D2ifYF8$hO_?#9xQ^L2nZ<0M+6V|{*9x84 znZgOoc7>bs$Ew;;C}y96!hhCZb?P&%a=>iLjM=6zXSPq-QY*G#HoG0OJK>t@kCJ1- zZ2QK=5odqWVf%`2T=f1{`*Dg1ep|g$7I*mVo!y#0Uh&ac@%y8R-#FkmWyWvoY|d{) z>jT!>PT@Clo0e_KZ@2q+F$Z&gyU#Bw?d1HnJ}34q_?<#V_+1VVA;E8C1iz^tep@@v zZ%!1yFQTP;{%Gy%v$eLhDCf5uEXMggATv8J^&#>5qH3b#x79Och~f9h5IetjH^eTs z9_SW+Ura)s-(#09_)QIo-{m0CM(~^6j^EZ5TQtP)i_@C%JDE3TmymS|zb_tttNo+u zZ?&Hif2;kbC4Z}ZnAp5o{;f6(*xF1lK&H{fzqvnb{Cn=<3KDa`rpQ?}HKE%?oD$L~(Krux(5Snzx7{VM;U^Mct{*OUbvW_t&>=KrYp z=%ASWiNtIiFq<-CwskOPHbV6UZEdG88@Wx(wq&;3eTV?-tBX zAtTH#2ZfMeHZp?Q)DN?*9cMNtirF{Nay@^#_Vrz1+gg+}+YJ`u%pQ=LotOHMn0-Sv zQ8L@=nKHyMdt`{6*}EHJ7h4bX6Jhp^B-EKbcIkrI)R3564gzfiv)S#KZC$a2Ld?D~ ztr@eEd1H1HS*I|2kKV7sqO~@=sW-Y{_D77_&yq{b{$~|~%zn0ctBwS`K>5#<()G30{HODXd_2We$9n z)+Nk-u0#a0*D$IV7RP>q6Jm@nU0Zof<3bUEjF#DyHJO89D%>HCz zHV&9gnK7HVj@dSu#cZG22nc4^3Z2=R!U@cFg`4x2soGE|W`8O%8wbp$%$RKob7uRL zEwy3`X0zKdyA!Ud{$e?%F#F{?FPLq0O-kHxudgNB)}ox*Zm<|<_JGXnywr!p?7OOolG#?zlp%)MBSY-W-rW$p z*m|Jf0kiKWq0a2FOBc+hhQ#c05NIQq&2GnR>xwNDV)or>&6u6c8?$@JdI*`#qO~@= zr#HH|PkxFq`;~Hu*{@YmF+1HSf3=*0%znL`S_0lc(Q?pdHoltK)LAn7HL~Q)CTe~A z_r5vsJepOoXUu-18dER+g`(x4$83x%Gn?QQn4Q83W>@CGXK7u+?AJ*|Fq_?F%a)Sxmi%_Rj~8<==ePU(qS8*zZ|ien--6#MWQ5=401*=WMn>?P`r)^=2VM-&W6*A%@>0L+t$C-4MIjdZ6D2 zzYj{N^Ly;l1;42w@w*%Z+6aEL+wt4FVvC0OeP3ELekb$B?0&LN;rAZhCuad$o9Tnt zG`isTM~&a_luP{nHx+~Yez%;1{QeI)wH*8>Maw~--}q{NQ)kKVf0ZTYH&N@`Hyz@) zRj_CLevcYcFWyVha?s;9#+CU^@Cy7+VFkY{bD*@eF5&mTOGNOS-DUjl>ZtkMbJUHl z!teJBX8Q)c`&g*m@{%9dKO1;5$t_}vNDRDZu5yXE(X z6%+indZ#Sz@Y_4PHUEg>qqE}o7Zbm6z;DWo-`3fj--y=diM5@=Z{+HWrP`MKcDs)k zb1>((`~0HPPR?)Zb7J3u-zj8--{k-i68uI+@SFPKx3%N^=0x$k)zUrxfcBf#w-)96 zc7w$@zXxPy=cPU*e($J>lHXR(lp%)SBSY-`-rW$p*m|Hp1Hb1I>iizNbir?GNc=7b zfi{BQ>~{RNuGpd>em|JjjNi$;G5ZTy4uzwy=lrp}VzAD1QPH&J>{ZHV7i!JhH^Gipq|_$)=sL66@USLQdt zEATso75uKufzr~tgx{Z(h~PK7%lO^ZQS-a!s2g2{-=C9;KEIg4M+Xkoa8=0&N7p+3omkU9m+&{C*s*8NZWx zWA=Di4S$^-``YG@jE@I_H{W2`TcDUOj+);+N8RWu{QkaF^!d#^=<^!^`s^~gC-9qD4Zr`3a_4K>!tbvF41Z1y z2mGeY_)T2LZ=1~Gw@+;Z1ix#A&hJd&1b(~1&H0a1Z73AKzlK78P7MeArp)+l3Uhw@ zlr6Pl3x2cP@w*eQsr~~w7W^K2PVL7!FPLq0Ol9}1 z(Q|4nT5B_Xh?7Pa%>INi`=@e=*}qgV$n2lXImql^%c&*cHxw-geP-jUnN6J~vwtB= z&TOLAx6g9Rfp2$O1$)Nq|5jt_#cwHE4tmVSxH7W|UV+&utYCI!4t$o@CCvVnLLLj+)s$N8RWu%>JEJ^qI{(=rbDu`d}-%Cor2?4YLnBS>?{pbOf`%k(iAGW>aR& zCaz<)O=dCMr#1qD*|kDvcBXIwvt8llyh#eh>~AJ!~AGzV?-tBXAtTH#2ZfMeHZp?Q)DN?*9cMNtirHt@ay{Q? z-SMqOIkVkhG0yA(nb~=%4~f|)s)>@>R?n0nhS?)S?9ATX5WCoVpdSUZ&my7D?6FH1 z%%+CK>~aujBbd!@$8770Efiw*S!vCfoy;4vv&ni0na!fLHaojFx?uJvjoC*?xtP6Q z#UQiSX832h66-m~9=*nT^n;akCd8rSH*>6=7 zC9|!bDMJjiM~2v$y}KcHvGqWo<|r}yZ4&Ct9=mkGY-&i%E(d`&g4yhL%(kxBLLp|q zoz{%m$-FUphpdN?*(_RXvv+!aU$>@&)eGn=UO?URR?Z58Ypv(Ku=)QhuGv>f!9jd5jW6TAYmQ&_?5${hGC ztxK4FW{C)9v%8GhT^%*Edycx%RhWHtspvDCdC+Gz0-6@z6lOE4VfOD+?wnp*nEgF~ z;m?-ifZ3E8vx)1NZIfBd_Nk44V0Nw0nVl(|z-(8zIX|bW4TWO%_fhE2mg9iglo_*4 zVa{xyvZYpR!EAOrW_Q9h)z2Zvg4t7_EkBoHg5Or}l*Ju>duO-i=T>}lR{Z`!;x`WX zO_}lAI-Bzw(M`*C3cr!tv}{X$yWPi&Ihga?eST4CC+D~IIk9iS?-Vk^?{a_$34S9Z z_)Y!r+uCt{bE5cd&zAq5_Vp1{+gge=$KOBej6hQ#l35NIR#&2GnU>xwNJ;&*zsJed#qv*j#c1J9P9M=tUE z{3-_deO@^S`F#O7wH#cKqUE5^Z+tbssk7ww`DDrYP1O4KEr+mFQmrQiwje< z9Q62&abUOj+);+N8RWu{Jw}(^!d#^=<^!^ zO^a^|znRtW`{I;4Gi~Ab4->y}z;DWo-^6wNw#h7h`_x82@Vi#%{LU0k;I}K>oL@rK zhC=cCzY@Q3z;DWo-=;9x98;ts#Pvs?2^ zDn2?Ze*Y-(8wdQR%=m4c&H0V!re!;Y-^guRwk5ya?&HNA%=zs;zo@j6^V|BI*tg(! z3K`*dIY5L2zmXCArhfQs?Kr+TLpW@ z?<=Y?_2NntEeAb*V_ccv1h2sF6jt!NG6zaa>k@unP9lQe>@MSXS4Yk7o}+Gb6@Fh? zD*F6p9`yN*fTqPah2P9-_ zQxuk<%L^mzlDf~um)3Po3?RFn8=3vfm_xVMo zot)p+=fu7Rzf;Hvzsmt4B>0Vt;5YTdZ)?Z-&57c-JzIWN?d#*FwzVkdw;L?R`8^;r zJ1_Mi@w@+Qxz#geh~f9h5IetjH^eTs9_Z@X^07-7{HBJ)?{W}mBlyj3$8YP3EgIr? zdbT{75Bam@EMUE7%Rgnm^ZrA*#P2^+QSm!HTYhah2l;(HIkg;IpQ7cU&u@G+zp1n2 z_jP2+`AyXN_UniEZ58Ypzi*(%)QcNZv>f#Kjd5ju6TAYyQ&_?8${Z*ytxNcQU5N;O zv%8GnT^%*Qdycx%Rrq})sp#{YdC=!K0-6@z6n-oZn2Nl2S!SAtW%Wtmpg4tHrlm#7Tdk44Xw@`d^P|W^CVm1z#O_?#hv}{XeyWPi#d6zTWeSRTnCug?xIq`16>=ZJ>>~c^D31%ZBm`(jK+uCtv zbE2625#7+9-$eWRxT$R|%9-s3i*aTT$jr`5eMrncrFYNV>X|acFneT(o!Pq^Vi#Kv z^kw*+_eUkvf9E}R>4MqRkeFQ#0&N7d+3lEZU9p8i%>Edy+3&oQd1Ll*Sr6gwyjir? zW}omz7r*oVv@!dZa*5fuRZ%fJ{m%Q=at<>4_Ht?oxC2GYL7&<9YGzYs$?V(6k~5pA z_3iHsG21HGGiKjWjj0!RqG&njF&pE`%qDmRW~Z=%*_Ao)Sz4Dc`*so$%w~5Pv%5NK zX7?O*qpL9ckENo|Z013q*$8M_d{dastcKZlrQErdwlMpb0K>yqJSIzuo5-m3DG|Tb~pA7W_^jBm6E0h>+knGJ@aK55KJ)=Qk&c-(S?y zJ->_g^`TSST9otK4Ho149*~)xm->+S{UtRK^Wlo8?BmNfR?n0nhTkJY?EK!{5WCoV zp!NFl^B?@OggU>+E?w}O8WO+DL7lA+P(fia` zz}9A8^F|lXng6Hp`<`-%-v?Dx{7(PozPFr%{Jx)@S`M};S`PaB##i&3I!k`vN0yx5 zM6GY1>DvR(nOg;W#_#*9G4yD|q#OY0JT-&Z1n-|Q~q zcUMQv@1CP>bQOL-P%8TTW*+qUjew@bH-+EKYWV$Ulsos*7JmN*VEDhealmiNjNim{ z{I|K`R4zbP|*o5GymK4nX-*n;2e zcKq&yYpVZ=91DJr{hRyGbzU&r>YB2k!))*1*1T1GbWqIxZDKYKm`#~6+d7yt8=+0h zb_%nR+q7&;X1m?Th zH}ggp%zlqCdq*xY`yna@nf+in2bujaIkf~loTBBR&un}(v#GOW_Fu@7Gn*(qXFkMi zt6ZqCBbJUHl z!tB44iaxWM2YqHEKwq6j_k_RaW>&-OM^o<1wT0QgOU%XrvnexX6W1}@CbO9BQyT%n z>{_8SJ5xA;*{*PN{uoso3dQXINzBFpvnexXo5GygK4nX-*n-*YcFgXCYpVa198;M6 zSe+Nlwz{S)=rG$mxHW&A;-iCN_P%43l)S#-pL952Hf6?a>tN1ogf=bPDa=N$K9s6$ z$!xd#7%}g1X1mWXB<I_%T9h-}4Ho0f9*~)xm->*H{V+9AGTZ8zGQ==@WQd*FyBlH`TMzVyHpJ|QOQm`u1&ym~9p88MFUhjj0z; zrf50nF&pE`%qDmRW~Z=%*_Ao)Sz4Dc`)?&8n9c4oW_NYe%Q>3ELZ013q z*$8M_d{dastcKZ7r`&mhwlMoJfZ_kn#sRY_GiDRlG214ynC(*=0m1BAp))&EIDy%& zaC80)RT~P$>;{GY?`#|}n=)gzDa@JeQ?}HKEtt)2$LvnHrutLmn8NI5>bzjK)iq^7 zhuPl2t@%GFJ~}97uO(*VfZ3E8v#oI_%T9h-}4Ho0f9*~)x zm->*H{ZutkGTZ8zGQ==@WQd*FyBlH`TMzVCVD{4_)R{eY>4MqRkeFQ#0&N7d+3lEZ zU9p8i%ziqp8MBjlWA+SL4ALSCWpQB=s+5aTxAhVwV373>+apRdN$ix*I|9Q2rtab;!`yaKaRSi$Vd z9QZ7)OPKx75)sU1cNw$0I%;P39Cf3sF#Cm4(PuXEpwDasG%da<%w|@@?3YmPJWE@c zeRyIv4wy}uF`KxK**2NQY@gZ)2xiv`o!Obf3CwndoAZ~d+E6HFACZ`i17=fZ%r=EN zvwg~zTCoMQ+3lF!3D;DAksMQ){W6^w%(l9wEa))XJGeD}x#FXPV)l`V**IV}WyWml zV9soWHZ9vJ%tmh0vMrhIb{`|=UCwOx`GusNoY~gr#JdHvQ^*Lj%RwO|n2n5JHub}7 zYsZ<*iDLGbwOr3%tbKjl)V3Do%yxstII{<2X6L0oBxdXR?26e|&y*pC*&{>j%--D) zyV!c5PvZULUzJd2_SmHhW>Z6Ab~y;N5zJ<{W43k0778)@YqVy}PUel-*JV9~%x2MA zn|;F@T`>Fo#_U(fC1$@y#UQg^CFdZsUni%QfY(#B9Q2uuuVyxNmdt*&EIG4@THpTC z5VNgJV0H>Cm|d9zpQUvPvtKI_!EAPyF}tgyW_Hg} zH@XV5|3xbL%w`_+nT>#^#W#i7%xakZ7RsGhY74X16SHx^Y|4z;#C6QJ$t-63)J8xs zyH@DT&J<2ywkzD6zg5+SLNR+IF&hWWrp%aa3Ug-rlr6Pl3ud$1F}oA4ss1K8rZD?$ zIxm=Qbxm2&VYYX0YyNh{M+e31{fXH)U^ZpOZ0lgoY=kx~+bPUOZqu?YneBETBj#Ps zZ1?$vq@A4E*5|~#1+!Dg2(!yUAtacMj9@nP!)$BEnazn}_Rq9j&)=+lebCgl7Uj%# zgT*+r2V`dFr9LEP|6EO!|IW60rVKI69vNb1_U?w*#nuCTd6@kR33XY<4?lTUTtM5VLLLj+)s$N8RWu%zm#_^qI{(=rbDuO^a^| zvzgT}`va6a@6;A%AC;Jm17=fZ%qFg5woPU++ov`Hg4wk~XLhD=0<&G==KO=IHWZ54 zM<-_EfZ3E8vrS>nY@f2FR&2p+b~|Qw!Zp?3C&v_Ke@N#Av#qWv3p&j94sOjqtoZ1l zn0=bWY#cC~GGn%NFlRPGo0jbqW+S(0*_O<9yN?m`E@!s;{6f-B&TQ**;@yJTDP)A% z<)9D}%tl5qoBCn4wd2g@L@|3!j||V>uYG;Q)V3Do%yxstII{<2X6L0oBxWD3CQ4>o zJyV7lW{(W9GkbSK>|*PIz8=gzLPDL{W0x+NO$~|J8{X)G*&j4!e?%@Z`{ODGnf*~Y2bujzIkg0QilXJ9&un}(v#GOW z_Qzz&nN8IC_H~AsZ58Ypvp=oI)Qithv>f!9jd5jW6TAYmQ&_?5${hGCtxK5w35f`1 zv%8GhT^%*Edycx%Rha!*spvDCdC+Gz0-6@z6lOE4VfGg&cTUk3W*?K7jRR&=X3Qq8 zW429ZG25p$0)pAKLT7fSa00Vk;pY5{sx}mg*{4m+#sRY_GiIB@oY_8QORd;~+3a@A z?u2Wqe@>1m%>I(j3uaqgQxX|acFneT(o!Pq^Vi#Kv^zC8xmV`R9 z$1Ytkn;H_c%R!)xU^crQv#l$(P>9*b(V8(knKx#~%X$cz&7!q7JHZ=;*_T`2x9>y7 z?61frW`9FP#q9LA+Fz4%klEjoQ%k_NDOwKt%*IzUn>tHoe_fWG*+i{xKYfVVR>7Vz z`#Wk(z4$Ig%R!IX7*}RC!7DI3g%!-M%z@9+x`f%^l!#z9yUUo})loCM=cpT9h1uVe ziaxWM2YqHEplR_`0EPay+Bje~WyWk%m^0g_Y^fDnFq_?u*`07r_3z8EVD{9% z)&7xUg5Or}l*Ju>duO-iKUREnR{TCT@f!#Hrp)+loz3};=%!^mh2O|+TDB#>-R|SX z9L)LcKEJ56lk?m9oY=SEcM2KdcR4_W1iz6H{HA{RZS6R}IZ^z+h?eg8545k3nA+B& zoZoJ+80YtZ%hs5uTs)>@{R?n0nhTkJY?EK!{5WCoVpj-HTF$r~kk6pUpH#H=F zmxDkX!Ebguep^>;(Gb5cPHV>RWZsxvLe?q#-lM}YiwO>`28C-re6Fv zMaw~t-xycsH^D3LJB1beuFQeb(z=A-zm$mJH@nOD-PKX^yXUAIU4`Gjm5M&UnFoD- zBcN&VP2o4Q8h-D)q{^M2>Ii;s0SteJ90&ZS%=k@Q$8Vd=;m#PNwJ2w{8!X0|Js>kX zFZCfY`-W4MqRkeFQ#0&N7d+3lEZ zU9p8i%)T+L8MBjlV|Ei+r!aeu{#KhsYi)K@Z*;-zj~KHL*8~x>H&hHV`$#zlnSGR; zS^|!yXgTOJ8(+MWVPE=$gAqSm)h_uYZtZCeF<#_ZFmG4OvoWsBY=T!{ zb_y$)U6}))rF99j_e(@Do84v1?&_$S-E-89uEOloN=2X9%!59&5zw^wrZAgX4YLnW z?i`^l%swG88wbp$%$QAF$84L-Vzy6h1O&5dh0g3u;RI&8!p-@ysx}mg*{4s;#sRY_ zGiIB@oY_8QORd;~+3a@A?u2WqZ^|)+*;_gyyN9fY zkl8F+YqNWLql^3G{vFTbljM-;VW9r3ODOwJC%*MDfvk6{-*(t1Gc4ZEHmewWAK9fWQv)Nt7 z?5>WQ**!WRe zvu!eq**>)q5X`O>I|*PIuD;_r zcIkrO)R6dH4gzfizuE2hZC$ZNL;OzP@l57J{vA&iuz~M*o?9;Q`+O<}`8|_!kl!cC zspa4T6fFmRe&eh8O`Rpb&nrvLZ=%+>A2-Brt6ZtkMbJUHl!tV=9MW5fygFe3z(6sob@S9l;zb{6) za~^Hs_lb$$IN&#B#&6;}e%oXgzkO;WAoyJ?bbeE8ir;5V{Kf&l zDKmasXLEidx@p-?;Wu)dmTk#zxBGZ82XlVA&o3(NFO8eiOU`zf)Mj@5&q~Ev-xV{Ra{e{APCkWe)k-8qpR@yN>b71H}jy+Zv-?g zzA5}>R>SYBQtn(zTljsp#BUt%n=<1!aUH*HGK=3nwGj~ft`$1JGldiQ?Fu*NS5vj2 zQ2ai7;x`WXO_}lA6z2T)DO+mA7W`(n<98=qQ~kYcK6 zM)+M05Fx>DWCXvdAAVaq&Tmc>zwJAoSJA#cVrpB9a(=tPVw~RtGPCni9}>U&-|@71 zrVKIs9vNci_wI(+#nuB|eaCa`(gnY%A@RE$1lkCGv)l38x?+ol_?^Dvnaqd$JDx0H zz3+H_+!_&sot{&>mYjq9zOI~F4z5Sha?s~DzM9|ES@QeZvgG_GYJK|* z-y8Uyw^gub{Jy>#Q!j2n(Q?q^H^!CuP4Ei*PGJSVD|4W;o84vn?&_%d z-E-89uEOsdN=2XF%!59^5zw^wrtq6t4Zm+fx$}qG!tdV$82+3Z4){%(@te4g-!_@W zZ=c!-2!7WJo!^aR&whrdZMrhNrox*J7 zHZ9wd*>3kSV&3JWA# zoZ2Uh*|(5O%)X6^L1y1d&Ov71PEIWWx2I@1=rbE%&1~u{nSE=afoyD|qpOY0J5-&P`m+3YT3c2`Hu?4F};bQNab zNhqYUE${ZuBtW^irME*%*Fw;DKlo9!kpPYWlOEtg4yhL%ofpiu zx~44XFxxx0HNU&!ql04hc@nd6z--El+1A0F*$8b~wo{mm+@@t)GTZGwM$EgM+3xcT zNjo{St@#b*p5Iyf`f#ajEy|hg28(fK z56H~UOMOVpK2c4S%(i-_3^B|e8DeMl?uOXK)&u=0n0*!rb!LxUx?nanBxaX`KpVkq zb~|QUS8SmWv(HLv#_VL?n4L}5L&$6vt+mMaw~-+4yQ^Q)kKSd&`nDo2d2eogrph1$)NqZ8fG|+@GT5pvP>CD>Iwm6_}mE z3T9X4z-MV)!t8?*5zJ&-OKc(Ec zr?xPAmY9tLW>aR&Caz<)O=dCMr#1qD*|kDvcBXIwvt8ll{LfTvC=|2Lo0yFQW>aR& zHibE}eaeyO*HnL?98;M6Ae|S?wz{S)=rG$mxHbQC#YYFl?DHjNV?-tBXAtTH#2ZfMeHZp?Q z)DN?*9cMNtirH_`gJbhQ(Y`)hYFmqPX1l>+oY@01v-46P60_ghdp6DLnKHyMdt`{6 z*}EHJ7h4bXY53mu+a%PPJ$C7W+0>AjT@C_m1hd)gm~CCLg+k1JJFOYBlX+wI4p|Q& zvstv(X7BVy%V*15xy0VGN6g4t7_Eq{z+g5Or}l*Ju>duO-ik5znhR{Xv|;x`WXO_}lAI-Bzw(M`*C3cr!t zv}{X$yWPi&Ihga?eST4CC+D~IIk9iS?-Vk^?{a_$34S9Z_)Y!r+uCt{bE5cd&zAp{ z_Vp1{+ggu}c^H zriR4tau8@E_|0y|Z|jOJ8sc|)wmg{+`LpFLU<1#VKTa<3`-v(B`TYbr2l@TCa%wsF zJBpTrKELtR{HD&5-+wJj&TpdheUTx4TLpW@?r#<()S30{HUDXidk zWe${<)+PM@8;J;hv%8GnT^%*Qdycx%Rrvj6sp#{YdC=!K0-6@z6n-CirdjPFdXHw|91H{!GP3XT|ReCw}9A-;^1@ zt+P455#6+Gr|=uOP0P0Ax7&TZn1eaL-RBpTc5;4OpA-8Q{7xYw{4NKGkl;5mg5T5+ zzpWkTHz$hU_H6l6wXYAF+Sa0+-)^uN=l6ij?7Y;6#P9yIA%@>0L+t$C-4MIj zdZ4Rk%f~KV@S7SEzso_Ojo>%C9lxzBwrGgo>DlsRKIG4qvw#geTmBDniQmswG05*{ z$vMdHf0k3r!E-5E4*LAYSM!@XOMd^8EIGf4THik5`vcFWSp|E>@8_v8_2T&yEeAb* zV_ccv1h2sF6jt!NG6zaa>k@uHM@MSXS4Yk7o}+Gb6@I@!D*F6p9`yN*fTqPa zh2P9-`2AwaoqyC8eqSW<8wdQR%=k@Q$8Vd=;UEJ2}6t&xw5tey5NT zewPD8NbnmO!Efq^-`0-vn-j%vd$#;V+SkWTZEI1^Z#P(s^Ls#Mc3$d3;&=bqa;s;` z5X0}0A$ET6ZiroMJbrJ5xA;->z_T{uWgm3dQeBpwOQ!#{s`7Gk%-GoZmiWORd;~-|Tk$?u2Wq|BD<8 zevds{{#KnA%(l9wEa))XJGeD}o8qH`V)n_2**IV}WyWmlV9soWHZ9vJ%tmh0vMrhI zb{`|=UCwOx`GusNoY~gr#JdHvQ^*Lj%RwO|n2n5JHub}7YsZ<*iDLFgbVGaoChhCv zrna>xXSN$G#+f}JGdnN!Au;=u-aT`xXUY)6?2#dMX76r@U2Hwjm*IEbAC*x5o%h(K z3uaS8Vs<$Qv=Pi^w_~<-#TE)N`(w0bzw=J!joHU#J%qpWX3<)keZm`E{LcH+#_YGt zC1$@{MaAs&JMVYOImqmPlT%B;zf-gv^qGyXW;S(}%zl?FIkSmc-+s&xv#o+XWA=Zj zG4%){?7Y@ ziV1#Oy;Bx<`0btDntw>~(OL2P(uvNBevb^X^Luwg>|*PI*6Yj9fAGr^>iizN zbir?GNc=7bfi{BQ>~{RNuGpd>et(75jNi$;G5e~lQ~13{-yLBATbq5&8(lnS{u$%< zhvgE#Kc=GMcltN?DRK_-`xA0%Irt<+%R!&t_-cMrXUXr6%98V&sP*l44Ds74*fV~A zN{y)(pQdOz*uLMH_TBgX=R9KHQ3ubZjT=|yH#M%n?-W+>yD|q#OY0JTe_SGh-|Q~q zcUMQv@1CP>bQOMoMk@OJW*+qUjew@bH-+EKYWV$m%AJpB3%@S|F#O-#IN&#B#&6;} ze%oXgzkO;WAoyJ?bbeNT@S=?9v6ZsUb1D90b}3X0zKd+qz;4g_!+QS~F%R^TzCFvQA<49({L&MQd&L zb8mFP?9Uprzbu!C^mP@3%>JsJgUtS>oLU0DMbUE5XEwf?+0cw{`S`K>u=Ek@(vk6{-*(t1Gc4ZEHmewWA{)R*Zv)Nt7?5>WQ**!I_%T9h-} z4Ho0f9*~)xm->*H{VO$5GTZ8zGQ==@WQd*FyBlH`TMzU{VD_&i)R{eY>4MqRkeFQ# z0&N7d+3lEZU9p8i%>E6n8MBjlWA@*&9ztfbXsykD>y0j${W)XykL41xf39MX**}$Y zklDYKQ%k_FC|VBs%*IzUn>tHo|4f#g*+i{xpYsO;&!$-gd&cZvt1}<6pGnb zO3cOqvnexXo5GygK4nX-*n-*YcFgXCYpVZNjw#GOOzj7=t*$8xI?VPCZq1w2K{5Nv ziP<<{Hf6?a>tN1ogf=bPDa=N0)3Pm@?RFm{=3UNg_xXjSot)X$=ft}Ovs1_jv&%st zB$$niU^ex`Y-`7v&52_6QAdl}zmr=ZH?^%rIkVkhG0yA(nb~=%4~f}FtBI1?R?n0n zhS?)S?9ATX5WCoVpuZ2ZPa~nu?6FH1%%+CK>~aujBbd!@$8770Efiw*F|=mPPUel- zX=Ocx%x2MAn{9fdi{EX3-k80n2_j~%tEiZrez$#uoP*5XFQ=A(qbOPq`pm{xGn+a~ zW*;d_&TOLAw{JVdY^z|;n0>SwQ!h?K(Q?pZHpZ2iP4EiLPGJSJD|6tpv@T)xhC~Fj z*D$G7cD*DW39`u=wfTqPah1tw%n0-3Rox`<-*;fG={=01)Fq<-C zHgO%ZZ8D45KD7}L%&rwWvonPgnC%KT=Lb}6C=|1=ibDV0HV&9gnK9cG=FIjfTWZA? z%x1S^b|+j@{j_o{m_7A(+s7&<_-*x0S=`~bcXn&OrTFNq_9{64M+Xkoa8=0&N7p+3omkU9m+&{5~_S8NZWxV|JpfQ~13{zuRU3TbrH5 z8(sXH`wPbJclzD-333kd`%H3bIXE*#%R!&t_-cMrXUXr=%aZe(sP*mV z4)NP6*fV~gsK(Tbvrx1g^!SZ&WquR90>4w(1<$bWz6Wi=IKlOKZDtOXmM1Ua_ZcN3 z_|5Jzes^`${O&pGMpxnYS*4=SZ{|Ut-w0@0d{g+%tcKs`pxilLTljr-fZ@N}#sR-6 zGkz1-@!KY|`0Z000m1KDq4PUaIDy};aC829sx}mg-`7B)|85%x{HDzKZ3=UK`;;xU zVhet=+wr>-uBm=DITrjL``z~M>%3sL)iq^7huPl2t@$|>9~~64ubG&Q17=fZ%(f2Z z%tmO_vYoTQEC?j4-<#6hea8$OvXrKg_mv zoY|ZxX5UG#yquq1`}(-4Z7s@~?FNf+W)H~B&P#nr%>H9FQ8L@=nKHyMdt`{6*}EHJ z7h4bXJ9zKuoh8(nJ$C7W+0>AjT@C_m1hd)gm~CCLg+k1}3#}QmlX+uyS6Qbpdyjs% z&7!q7yPG$Y8!|aPv?wng&nEi)|**IV}WyWmcI%eBs7PEb7 zBOsVvD|BXO3MVkz6>iQirfNf>n0>9pY#cC~GGn$W%$e;|w$zF(n9Xj->`u6*`i13~ z!t9IdykNG~HDy7E+1|me`6Uz|9Tc;#otTXSW>aR&whrdZMrhNrox*J7HZ9wd*>3kS zV&3J9 zYDmm32Z1(%+3a@AwyxMhA!eVK){NQ7yfHhUtcQ@4EXGY|UAMnKcz zo5E~nHO#&W<<2Fwh1u6h%*Fw;DKlmh*D>2BvzYBu8v()WTA?#LQ#gUyu5fdHRaF}b z#q2*y%*Fw;DKlo9!kpPYWlOEtg4yhL%xXSN$G#+f}JGdnN!Au+rE47t@a zWr$(+$PhcTcQ?c?wjSu}8S=497tE%H#O!hqXd{@-ZpUoviY*jkc6x?9nGg9hJk|k$0QR~~6|KY&%XjZ|V zG5dOIOue{1Max0&-`N;fW;VeqFgt}^FuylmnFF7tbqTYtBN4%Dc9$``tD|Oi&rvtJ z3bSt@6@6wi5BkhTK-1!z!fa+W%)T+@&Na1#+1E?V#sRY_GiDRlG214ynC(*=0m1BA zp))&EIDy%&aC3eWRT~P$?CU3HIR@pqPDw#B3Zen=)gzbuec(LYtQD6lNp0Y1x*{cDs)e^Dbw$ z`}{)EPR?xWbK>2C*(qd%+2x=R63j+MFq`^ewzcET=0q{uo*}=H_Vp1{+gg+}+YJ`u z%pQ=LotOHMnB9Md-0GP!#4vkgh@IKH8)6q*4|Mem`PiikW>Z6Ab~y;N5zJ<{W43k0 z778&tJwu+%hx{3G7OjD2$Zsx}n0;#%gUr6AoP*51t(;l{Zb#8_&}TNjn%UG@GW%At z%(e>ljM=wWW9r2nC|VAB%*MDfvk6{-*(vOTIkPKs;Ip(YVfJk#BACtY zGG=#m)XeTV>PA;#_8q07&ur#FpV`qr_|+Fq<-Cwkgb+?NheYiY=JUZpZ9S zxTgA@?u^_CYzd1l*UR z<)F`Od^NMFvt;(YWXYLL)cW?5hL~*?>>0D~r^eKaZHktI9JV0H>Cm|d9z zpQUvPv+pAj!EAPyF}tgyW_Hg}H@XV5?=Ka7W-|}^%tk=d;+w*3W;M+I6Uv=?XbZD% z0xU^ZpO zY*Uys+ox=)65OfkW4t9Q!c4!^y#Tk{7gJ~}IY-z@PP z2mGeY_-&od`HkqNWjlr6$ZcA-CBNP7WI zU=_4#_xxzG49BqI3D z?lOLNb=3UsIqF7N;rAn?qR(&UL7(3UXj*(z_|2?_-+x89(`pO9Zw@g08FC!(n=<1! zaUH*HGK=3nwGj~ft`$1JGldiQ?Fu*Nk5aXvQ2f3H3jG;!9PpbmndzA4ORR>SP4 zQtmuXTbO;T#B3Zen=)fIaUHX5GK<+hwGj}^t`$17GldhF?Fu*NPgAv_P|Ut{Vm1z# zO_?#<6z0tKDO+mA7R+Y1V|FK8Q~k+uOkwuZbzU&r>YB2k!))*1*8CZYj}D62w@J*# z0kbJHW?KhyW+Sv|*-l|La+{WI$!xd#7%}g1X1mWXB<cCs2ASvd(gi958HQIbxHrN?|bwU_nq_8a#5}{wJhs@b}N`t^vAw*FYCvWB)?A{2IJidrkWi+rCs=U4xgYICyot2KU(? z^WdO%mC<5aH%HR(#co?_>f+HxiC5LW`Lt^`GPB?y^xC9H0%w73$<99P1x z!(;dDe^QzY&v;HZ7f_X5hxL8$)OC1^tpjh6OV{C!`pTB}^tmb9zS*{KvF%&6)zx^L zii6j*tMO9Z{5s9C&Fp0=k3ROW*~?YNw4l0Xeg1Zeoi}QG>|xF9j$DizH!aqqn;nYZ z9sj_^@<50xd8H~j_$qC_aQb6d46G)rV*l*bn72yn>@_m-_c({0P8_6w3`%LEC%rBFP?QX&Xlh2uM_q(YI+x=cjyhzDp8kuF zFJHUe<-~S>P@%X7)pp+^Zg*wb?h46vSChWByS;7Nv)#*df7@Mam2CIGfr*tl;3294 zhes&!niA_{*2hseJVD4;Fo&hsg?vO96H(VFHjY>`%9Ggse9`y)>lz_`Whi$$vs^eWZv$pP|$W?l^D0XoY?NK zD-OLN*2e?_8xSf8*xRNM*pTG{fim69HX=*EYL0P5^{pXX9~p!s7P!ZNhk{m zg-&a+E(tZkWD86nu_d8`guQJFiLF>JkSNp5Y-_T0V?k>*kZq$SH5S5L81{+JsR|sv zq||7CW&NM^YZMOO5b{-P_X#<{;ai2`3sfAoiyV}NgF>=Ts0keE_X&I3v}d0v)BWue zTB~HA7TKf z?E&k^)={jZqV%>&$XBo3>hfc&kET$Jglenr5VyLrY;}cXtE)+0TixC^?b+&OI&Ssu zJaEFW(a$K)0nfc;#5thWE7|UW$2*<}MyHDH4v#S@@tbefv8}(ej)THuTtdEvc^uol zHaIR`8ysI=8^{kH<0%wlpyIJ(WIJ}}gK%tk*F46j3LYFACZyD8x2zMPFqoK-uW1H5(bzNM&J;8w z=EOK7$^!ot(=8J5*~k@k`I%wSTg!kCzx62B8>ozgm$b!rqIzbE9w&0{Z&%wul~;_(+^ zGDt$O!mbD9&JJe4}04b9tFz<9%Z_j?MHS5kIFHj z^%}_j8kX&zF9aUbQWeI;^pqOy8LTs+FqnyuuT{%H9x%uhis?`>$Rh(~VW5yOP?NqG z*xRN(49fJc7*t*}YrPT%;W+ue$HdH3!GLS#St;?uDAw7mv!jrhgOIOn68nSEqu~Gw z8Vv^$<7ki*B<55oWveMIkUBAz!DKfIJ}ZCxv2eR0MX71eAq< zLP9`I`XXR&oAwYW(~&^;m{Bi7>W8oM=#aOVnO(AhC z%Z0H}rkmMuWb4L))@mR-UQ33taKngmrp2g&!`gh|n^L2_q;)A20!tI}^-N%hvn5$@ zwzP~wu{f%;rQHQ!c%!W>XG;pn*^-(Ja<*hATcl@8W%f7Mj0gX1#QBo`adN&Cj)!4e zFH2Pz@5@u-+o9GKQTn(NAz#0CE6aneys|>E9ICCnN8HNFvXvE*t*j<}ZDo7gv}Y@q z>A00^$Gg@m+0Nm3_@T%9DpbLMbEMTMHQK9N*RZZ>9gf0dEkeG5d7Qw2@u)wMf=2!S z5#y+rA3WApC{{(qW6#J#S$HUPTB~+Py_#ThGA4}rQwSBK-rhEa$EhqAMtzxXW~Y&@ zKOSnm2C~z`vfblh;IR%>VN9$?snK5Fx&aD<4GH;%wG89|gN+o5bx|?cD>6_P1_}uS zHR+3iy=~gVpiKXYLFF8%_4*Bik31$erYbPlloH=lv2KpSU<*RNkr|u;K#zknDQF!0 zofyY~JYcY;La_-d275;a%ECaQ(^{iD4%7sbvoK*CoK2`02llop49;P>Fb>LeGdq{; zh;dNKK{YA*aNL?5(?6ceCz}LSqj?zKLlJ zb-pY=XzZy_?2L-WK9Pp9&`?Ou71ab9_2wkb5q^W`%At8>N5^JT49a;_MT8R2|+ zFRH@6@fS*s_CD5qQ5dud`KGlD!+ul+2K!Uu)5z8XQ5YOV$Tu^C`?}ZC_s47L2g++{dBEUch2pQM7_=h; zWnrMuY2DtvmR1uOJQ%K}FQ}d$>}^vRTsUHWDAUdCqQ2$_t=B+yaqs-_i5VP1RhSD&Uj*!J(;fn4IufWohthiehQX&E3;#z| zU~n=eK96HP6@|fRgnUagxE6pO1=mr~D7c;&M}a(GaJoWq5-J9NjSQ59fkLOXZg&)@ z2_`pS!YH_rP%#SZZBrQB#ByO2l<8)6Guis%rPga8yCp2!JzfR|XHXUPhrd&5wEtl} z%X&5niE{|~R<$JL1c`GMiZfA>*guj`77_{x2{q}9guQLrL!wMa5;ez5tyRJy93MXO zSU8WWFcvPL)M#I5y$FTC#e{ro6Sx(K9t*co&{(*g7{`Jm4Wr?j+>fnZSJvChrsXQ_w!~05R?p@_@iy3dOCc z2pk*d zneJ~aXswd5kUoohh$=YnEbb9Xd_KeanDucK4o?vB9n4{fyGt_S?$W;%iic6%T{=`4 zhBw;Ea(77~xx1t$gWO%RlP%J_OJ%nDS)BfD&%LGlxqtSB$NZC2(NFH5Jxz(vUs#_( z>EW}4d`I{2F$Rl<`r|}>_UH*>9P+YgjJDr%3dK|C_>D$(n0mQB<Hlvz-ofYiY5KRxoR;?UYpOy&zoo?6qpjate?aNykA!^Jx_-)t ze*UCTe1oc=N5y_BOFtEoeyYhJ{j`%U(teiN>VE3qR`l~{szN`1q10#(TTnWZwSm&l z0Ybi8T|Z?+KSx%}qQf8R=h3mB%F<7Tq@QXsNI&gli?p9*wz{ACw@E+4dD;KG|Bk}H zrk~7VO|4;jH0$UnJsg9O@9rMH&!G37`vC>*xgQeao+}Ub+%Xl3QBm!=$HYBXS@v9o zPHX$_o~tI9e2fWu?k9wbJ=fkgWzYST<-(p@rkmMkWb5ZJt=B;Id04hPhkb1ZV^IYI z=CI#U;?;lFajoN_kQkqk?_m;OU||wpQV@x+h>?VxATfbLF*Yg^$3_y$LPDX_+Nn!I zO)&Wy6G(hRs32i)n?mASmJ1}xbTj*oY~38DwHnC2*OHpU!hPPrVM40lz?sEFl=wJ^ zbrS2O*2z$4Oisx6tfe78XiT9{v{2DFF49mI8VU&wHR+3ny=~el>9IY3$F0EJ`@P?JIC z06Wd3V_EGf)-A|4fv46ODCd>nte!oRyI8UAx8Q#1{X9LNOz% zEq+4W;>xnc6_PEkCVg#jd)u^Ui-^RQP)ICD$oDac z0W3^nWC|iN3Nez96C@T=DCR{);{PHEWg(%^Y3<%6p(dC#F@eNrgbEV&wkae=XSpyJ zmg#0T2HCo~P-``ijj1Iy7mhaUWzOvbhlQzv!*+bsgA%`oZ(Yo~xOEBZk|<1;BINtl zGLb7xmR2YhLB-^x$V6F~C?rhOq%S7+wrLNOGTp=E)M2BaQ+}56;;Tkn-)XH9Ch2^* z3{^1U9CtZNjrQ`^6|5_wa9D|ux6NUQb6goQAFixWEQ@MBJXsiq^ZW1o&3vek%!g_+ z$b4ugTcq=0nXR4=^>35;Fx~d6P!+cQYLxgqgmn$;n%3dgwNU!JHX$!+x4m51_UkAV ztD@TWr^IcqEZbfo+4gGE*S5E}O?$R|neK1fYps%PALhpIJTI(E6-<~L*QdlUvRXGp zA+Ql4-_HbQ7$eRIGg8ouFcUG(2=aiy#tOxHs0f@I2`CEzg-+{*?(;r1!6d_k8DZ?| z8NuE*g~0Dd%m`(=nT-?n^KdV>@|maBYako9J12zWWMHrfRWRT@aWhJd_U6_ttXrax z*ou(@#8tv_^JD?EQk&y3i0^-XjAKC_5ZFnf*cKIm(<1?8A)wG{?bSUx zs0k)5Oc)Cj5h{)j_O>YmCT6*CbSTr!Y!b5d$4RZ%KsISuw)+{OAIxB9sse*uDDgX# z*4

`urJFoVfxYzC845Q8a*k%2s5u!lmCqhfGIWS}ez6gsVax(w6=6Tb8<22&F% z7}(pUF!(*o1qNlhnN35so`KeDAe%NU+hy>h8SF__V6ZnOe!b7S4+?{Q3HgC$FddD} zV0sE-Fat3%kOvIf3dLTi7@QdyC<_CHPOIoLP!mjM!UP5xp@M#y-5=(by$7SN|xNJE)$_Ww& zD-`>oBJuY~LRm;CbXsqBXGb-G#ByPFoUNLKy=@AK*+-Bl)6HxS^{!@4&{_>-b9Om| zYsbLh5USw7wc}xw_$-9=2kIMLm{D|CVkPc zw@rI!l<7#L_S#YFmGDT4BNeacW zsLqwn5{TjaDh7XZuB4EhE2+sK=Sp_6MS8AOW~1j`l@cFy zu%2!`1Ers567oac&$$>no(blrpqXGEVw?%{X%LU9VJEq->~;>xnc6*{f`yEB2B zU@|Wz%mnihDrN$E+mtQ-CzcB{L78r5^OLO`|5~eoYymA9o_##R^+LxS{y`NSI6pd@ z5+8K1o{K`@JVJh$2`ors6Ih6X2rNvD1mppM^A(D-P!TvM5>OTb3Z2$LT>@%?$)7QS zz@mf-0`|5k1QuhtK%h)Fv&G5Q&xKmAfozGeYDvX7TDDhDT>m}ApQAk`y z$PYJ(C9yDxr6`ER(!@wYPLQ}5GQFZQ4VlOh+2EbD`EN;gQaTH&6u+=E9pOHQF~@Z?WEr zLgF?;exykZF&D~+x$t&{;zm?+;rRkFoKF<+H*=vvG8d}JAakLeY?01|Wwv@Q)W1#U z!f*_n$m9PGs={`^i&CR~xAh+Dz1I6sdV4=1|C@WeMKkUNTT;+ouoW@x1@dFNKcG-+8xPN)ec+hD?8uq~ltFR-^w+3wr1T-XcBbTiwY?1=fG^8TsT zYarVpEZe<@5_tTJDtK@Y=6pd9-$_K>=AadMY>0n*||s=^p}i4q?Ju)bn_)%u$Cb(CJeLCBA(9RqS@47{mOyohQHTpY)MvWx+RWDKZD zUt_@DHtiV$WxBsHptb551N#2y#GWVKqAJW2?@;0=8LaPF-?x5%LgPb1eynNi$PVVC zkIML!s09sXI@o2`0N>!aT7np<%*P_c}6+k&mf@2j@Y*kUl8)+YDa`TVDP0v@d+vh zmqrH4!ayMz5o*%ch_JU!dqzZ={?%Mrd2dPUm5hmSPlccN;Wsni45|d)A~Tn5>2g<6w0{ z#W=9HO<}MG%Y|`JrkmNCWJipHN(Nf5foynKwtM~<82msL47k7c6QxG`XKTm$3kr#0 z3qj(9S`u=C#7HdND1PJ*k+?jPP!)(~2il`pN3}MsqoL3kosgecOGAFp7(<~LKtCv*xR-ZrW-zLY(bh}SLRoLz=N<4+PPHdgTIw?wTCnMx1 z)oyqBvE3(EC?-U;-LHz=2U!CFivo)g!mpgD0JVw@A@0fT83iYZYsxH>XW76uBP)=}L# zQB5#e4-@9Z^$8VoqP=YjgAG_N%!y^XnQch6eooYS4P+aIWxI1?c;+x2RWM*qoPkoK zJ)?CdYlcE%W8x|aQ*1$~m?`XSQ#fqNa$%+@)6HxvvUT^Iv{nPz)>^W>=QLmrOHmc} zk7Xz|+RIv(vo3F40fokjg!~NC*ajoh*p`B5Y)6bV9Wa5$j)V#t_O>ZBc4E0eqf9rmoym@vH!JrKtrx#c6qfD%?ZcI+f(O^xt5V{Z z4XmqM*RZaM!eclgKhr#hICGF4XAWyA6sw>*bGSh`hV!!s{LPtzLUQJyCWD+g*vS^@ znM0W!>N;EhxaZtKzxf)zYp^y|p}*@=YP8q0u5aDIx*~BI< z82g)1;<>za3+tBFtx)>DH6j0p`@Rc<#$$h13L5*n5#!jGA7g(TgsBeXui?eJO}an;5Cc6)L+b6x*Sqa&x4jEL0Ra zty8;H)C80LFoDWn2^CcAZBwZ1&vJoEnQmqWkd5}^wM9KmvdMwxDAN0O}{BU&$hk0>nL9V1QiXj2u&$bOV~DVcSD z>jBmStp}k{Ihc^2V=6~sXDUZi5S3$yk&0ZQa)?4vprUeXq@pZT6gsVcbg8HbCdXj{ zmE#E&RP1e2sGPuZfl8TfW+#%Z8zWjPeyv7Jme24;Gm}H9f(h3fhf`{_kFXwzLf~(N z{9F?_iN+>yG6fMhg%}CQ0|G}W6o;WAa9bpxECduft#i5r)C7~$FoD47gbD)owkZV8 zV7Wk`OgFPL$&MHomG@w@Ui?x^ShjmFEW`o*B$VV>1}! zNv=F#aH2wS3@Qekcor1=}9mF^e%2g>g`(o7uf&>&JoCYaqKXEZhAqz^7(# z230WNX#aOge3##Pmi27wIVe2NCFB>F#|0Rf$AuKc<04|@AwPJWr%;@UipQOihqCZc z=(O(X@=y~@F2MvIml7&?*xRP?xQyijk22lNE+;#JN9FmX){CFi2+MYPjPAMNe5wME z3n}qB1?$DuORSfo@VJbSUuYix=ziMgtoUi4v&&EW$PXTuD-;)?;&E5xp)5QUI;~&2 zpY~A`c$^zP?Q<5pN(B#l+Y}yWvs~a&rkmM0Wb1ioz4(V=+3tObG0fu%s^GzWiK{5_ zjN5vR^;#4X*AeoIOya^WiHjnMi%Sx6g2eR-#g(W?+#N|M3kiiztI?e?)dUik1`_92 zld!iac8gER1Caw^0?w!X1?OI=}TU>)j|M?jhutn8Y<$n8dXd zMB+MPBq1kA+^bOBj*7&+k%Y34P~hz&T@q@7$v-iH#0`WB685$!ByME6K%z`Hvzy4) zjRmdMKz6g1)cHer))_tzc^_49;Jo_*N_?5$`k?h8>%-PZP?$VQ$S*aM>98}C=_!aw z@(D?~!sIc9;(k<2?u$&6g^5D)2}w1eH(cmfrH`y&BmA)t^DP?Nq0 z*xRN(1j=;3pApr1^)M)ZNAnq~V8HJHJV%K~`_|`C7`#BpFE@iB?mx(a`wuTF6wji% z|L}ki4Cj0H{LTFbh2;K&nhbLP!A`bF??05;-`syVxcnVW{o~~RL%0t&w&#GCs0wqy zE0h}TSFNvEUq|Wb8-)A{_w*Kqn#cRC6g1v%BgQ#EPHgQr6^fTpZS8->t*tCuTcOjs zv^xi=2_|=7!g#-vP%+-^ZBw@PT`U*Idzo%#cayD~1GH8H**#jayoUIlIlM(x81L^; z;@Q6SJrn}(6Y?uf;9eS=zOLN{)Gty z9wbx{u(wSi@DR%d0%f|HJxsR#c%bzf$Q}vHcCR7EF@q1O3JgA`)M$TV{S<}4XN3GJ zGkBE7X7CsVF?gI98OQ?$pDPp}plYe6ZgC_|U4D4-F7(B&t zfkByWW>1r?XQ1^O$o>h1_~yR#YwI^CB)%o&SJ#q|6C}P0gbD%IgTNSHdHGmfc|8 z;K8%(k=2FvDArM}O%xKN5%OzIVu&Mxj5s2Uu22l1IwCwO5X1Rk0Dp5tP)LplYBIEsH;ZRRxy)$40epJ7IF+78rhN{rd=_obY(_3e- z&WO^_nF#p}?&lCsUu4A7mrS9U7S+?2f2*I&qssF1MIm|mq9%1uUu$%f@+*U z8OOP@jB|zL$%~pW&g-AN*xROz^YY0{nT}6hYR0+NDtYb_j&!iNzI)g;0@r zI+9Qp5(>%F7BzuH{nHkE+Y}NG-szW?X2kl4mVpT!d#WOHdWY#Zr`bb%J#n z>$2A6P-rYq$Zs)?p`NnH4;m{d6icF_@t;UTS!gIEPg&Fi8ud?E>}^wMluud8bbQKE zJ1(?dzj@9wuCEVPqzWE9XIYt2qrHlCRTKuR5%OEj;F<0b@!5Dpe6Bnq$^!gXb~f`rrjZ#r1)`Z3=@ISuR{3l<8*n650Ce1FhFU_HtOZ zdwnpT8LUB7*f)k#;xh!+wXN%*kXVA0fL`CA+ zNJ3diD0EskbV;ZQCU0N@i8l!qB4P@_V$?~~u;IKYb zVc*!05+6^nZfxDex+w~c%?LTa1J1pop=iht8k;K=8=#``T%@5aG!zmVYSI@Cd)u^! zMwyN@YWEGTSHdGbSK5LqcyN8N6(v5hVBN;LEeeV42>Bf*F~s$Oj5t@?UZL0$)w$At z1!6d#3*c|gl@yY5B{do3T**$hNY9nZZ1uU4{%ys%(hgLGe(pr6(cambTX#X}=dOhO zPWN+&b0ryZuC$v%u_LN;rRUX8j>F1wuB4EhE2&A{xsq+|*K@8^riVIL(rWaaE0ymd z+?}e>?>#9s+Iv~|w*CdB-}?~qyXv;DjM%>WDinL5+P*Ku?W-)?S0UNHYBI?7wUaH< z?OSH6x3B(fvVBJxR^Ib$Q$;_y=eZvxK3`znAEk!}5c0e0dMFEec%VX2pz7g^v4_gi zLxrS=YBERFJEDE&Q> zkl$0+U)j;$zbO<4qw4QVvA@dFUxlQKH(b+??_<_c zRMB6K+s9C9w2!qOhtkL63HiP5{q2g#|Z<{hdf6Q{>XjP`0*(YS{kK0BbPoJPp+Gl`G8&pkhh&pkgapL@y)5~nK^|A&giE0Kh< zkWlEfChn3@6G(g(o_l^?O~T$bg~S&lNR;Vj_N97Pb55(Z;`a>)<8TI5fy3V^@%aGj zS=O^rIGjVs@2}+`Cpes|P@IX1!>f^lvT#sHIH*Zq9PDk=9u8%?KMq=}9uDPvejZhD z;COujC4TGQdXe>F6b_dV@(1enei^a%U#d`?k81CKE$;owviB<_d%v0tviIA`7U|w! zW~=9O{oCK{`(OL>AeT`U_Wdg;HQHBNuR`hJ)r9-e}D*#(ru7iCx2+Zx*Zml|Xyj6cUTGT$lyRbTeCmY~8-E zwHnBl)RH=9A9L8JeAYN{xP>Y>wE5aTCBAuYy~BE^^)Bn()_bh?TJJ-lbUz_~sFsrc z50oBIC~ieX>CH$gzO7^yC52Z34DRs}~FC8}eb>;8n-E#Mc-^yJcw$xcq`5p z$}(FhB(sH@3^H5T$rkBsQD%R0uE1xqCyu`buYa7(7wH&zimEV1{zIwJe#ZK&^*QT* ztz1$rw?SzQ%~XZQ3(N%5=YD zMC+A|k#KK_Ns2k;RjS~`waV+1ct~!2)B2Y6Z4@5w5b{UOV<~n@&#_BW&>XuAG0w5_ zgU7oH#cQZ|yc2mS3lD`(>rdUY3N^uGIZT*imnT%rvG%qpJXT=2Fte2DX0{^P5$9Kx z_YAdO1KCPpS$&4)!4dn+dsM-Llfe%t@fCRMN7j$6pIARdq4F6af2?kAktuu2=L*I9 zsP>k3#F<@_-G6vRUxiALGbieOx*Lo%IY!CO1Iqb4e{6G~v^gVD&d=K2(vHpTW zV%Q>(c)}#sW+hBw9SS0`E-{jj6C_4rX}$-}A0qL7B%v%M6gsU%x_g6~V6r|Ykl27w zLBifPg~Wy|7f6)pX0{R8y5p?YY9QNKOP2S>-ZqB@YZk`E$m&3Q6zizgrgbzF8lw~P zf1Ac87@5YV6hvb)Vx%EIXpEsy44|U%L8PH9G!#0m#kw@q1d}Z=fyS1E3L5sdDKxfX zxj>^#H?ytD*3S)EFMhx#EZhAIZrD%8q$=%@ENLfOq_bq1{mnT= za{od9IGHEI=PSeZpOPy2%jYYnrqpQv-a3tSTI+Py=}~$;10jF9b`;2!Q81%IF%_y& z@Npak$}$QRl2M>0eT@Qp+q7pCl<7DMMw(*Su*R^;?=@+yk}(jNyyH1yCaMCHnJG2e zvsh=f{=qt%b#@dca}e_Xn8~r->yzW+^~v$&^@&_zGN(e3p;!trAsN<4?P z&TE|yg~Oi+`7`FQ6BeE^cc!2jGbhFwQ%-Q0U!j;A6^BnF2W8=)&}l8%oiWt}lU*@k z#@vliF=N`>rf}Gu<-&|vrkmLwWb2L}TC0ISB9kUv+;K~8X3 zL7`X*6^G9w2W8=)kZ@3wzBt(1rac_WbPtE4hK+twd2O0}XI5*Ka0us|?|UCvkt#TF z-LWzyp21pIwXSAe9figkg#5pzu|FHcqv8Mx8Wjf;42iZb2I4kKHCZlU!W$PN$7cJJ*39>b{$<6><} zjrKa$b*<~6kXWCPKVM5iPLS9@p;!wQi7z7wWg(%EkWiDpNZ8w^JtWF>BoX$H%5kB! zN;rgZ@qx$1hE#=du`#7adlT!X*3GP&qtMubkn=n3JdZsBpdJ@TQqZ{g8!?Ux`9Wh# zg<>OAG`@;7l!b;ur?padT&M{qM`OacIEGL$F6?bnXdKIOVO*5yW_BFe`f;K48pw_h z%W7Pd_jk9V3Lf0w-G&nHfVXaE-5!O+4ut$glNjRcN=BSr?Wj;}jq2>`e*!U_A5G_P z&aM=avnw?jj+q~N z{O?H>95~0^n-afiZr#VaueEJ0P?+pT$X_;-6Bs_;3r?h}^w+oXT=xFDTQ^>@>1<=Tlm%f$VfGsq=_1 zHUg9VsS0D`KuY|ex%FV{At)RUCFHNva*z`o4pS%&K*izP$U#{+C?p)zq%RKkwrLNC zGTpK6*wG8iLZoPkFp+(!r>S~{;D~g0ZNaDGbw01{GAxbgPh=S ztU_@FDh}U84$8toq0?HUJ08>old~{kJe*Ca7!UTgDICsWxiB8ebTd1bY~6XK)@mR- zPfM2fB?5=zsDcCM4ku7*v`@7DpY^;s(vTlCPE{z5M@8fNNJCj@C?qu0 zq%RuwwrLNIG977j@AFsQv($PeJks;*)2Iq_#u=3O!E@{1t^cr|Wjz~($~lDmbyFGY zJX@|%Iai@L9Tk-yA{Aw!qL7?lstHu;&$I1qQ>c{Z*=4%t{Ic@8RBM%-U#92T=TQ~* zl?y2GT-17z^nqj0!}kiTgT_jRwy?~m8y50uyBa)QIP3dQB9IQ$ej zC<_OLPK!^;g==y(fy0C0n*4(5Im6yIg~Np-=8Q7k%r5F<&d^#7WEc0&8K0QLbyS5p z@dQ>!ijx>~ohC-*c zR(A$f6HKnagcgcyT{bP<2I_oxVVE7 z-J8;&xOdI+293kWffSs7YTW>}}H?5@kA)s5#%# zTK$H@XC4>#Q585mK#A{6TOYJOgu>xrLjI09+zLvMh}$S=MBGk{BSKDactoMN9~FmR zA_ryRppd*1T}?2#6B9sHJV1>5 ziJTzuwnFhLDiV!ILRm;CbXpsCXHGT2PaYyv>?iiNDI^|dxv-y<>1Or_*}8L2 zt<^yGsFp0xJ;Q$T4pm`Xyhn+zR9io=erWv&g~rE({DazYAwOt*qENhxipD^sp)52M zl5wFXeT@ry+q7p~l<9uQh1M$>7wI#gPpN_j&wxIs#LuN$zqEd3{T~XCuL=2w<}t)w z3fXa&;v0qHGgNmeMi!3Y{3bbnbC*IPxl5rYgWRRClP%J_6lHd(XF&SLJ@+Xd8Sy)Z z-%>??xgYaAC7u;qf3*ID($k*_`A6>QV+M7SX%JR8!h2(SNYEt*PaogIj=X2v_dZ^EhYc+a4H(vJp7pg+PNBXn+-LMW=M@H%Q zD1`jux_--uevhh_#V}O;9yRt`S^BMz^jl5p`fXeL_4K<;57lq2Mo+)>yOv*i-fL1t zzj>B3Iwf97ZXMG)7D~UzCgh*E-_NmqJ@5TDZusZR4K644^xr8IqoLZDSP_MEEndzGTqExAzL@^X{`pbSG8n0?|o$s<4^?$ z#^!jGc*Jd;z&fF|g+gN@LjI{~yoQl!yiP&8!5hRl{N)FYi4}@*QPCJJ(ohx}3Z2$A zT^eeF$y=B}<849(4SU-Z8t<@Npi!oq*}G)vV>oZDyyn(=4P@_yWqW_$brP!J!Mrya zB_45Gr?5_GoeG7=)P(#q^B7{@lO6Nk?-hzkQO$d!3&(JtGxIm|o90c4Uo{z|zjm@k+TSueRDbo4EBZSNRiVFspwwv3W}V$ShjmVr{?0|nzo_f4?C9^@ z3dO9b`a5Rqud?)4A?dH04ANga*&^+4nH{RX`o~Fs!};C+ynoL_75!zNo0n3fJ)iYY z*7;F-x&R^n(mj2jUBY|z2Nbkte@Kjbww&0r7gQ+zh-%LsEAH9KvS%xFTHAN`Y&F5; zV@%kyKOt1?+4i<6d-kU+7xwHj-ON5CTQ|>Xtp>8swPZQZg?G^}L=_yE=N6&F+qbQY zS{Jh}jzVJzLjIL$e1VZ^d`Uqxz9L2%@`J{b3dO>xXp9|cC<_gRMT%b{=;~VK~=Q*uc@=p42Z!z##iYj>UJYpG2{I0ikIqUM)6|5_wP+5tP z|F4#cT%oeELa{U|D!+?Vl!b~yLPbsbqGE5G_E0I)kxH2REAK68tr8~bT(}BVVQyHB z67T1>u3=r%Ivj<@T7>-Ty17Ai%nfTR6sw||8^(!qgR;yG3d!7{CWFikcCtk}HF>sb{F~aXFF&^aCJM#6sJ8yNaqBC~ z)>lZjzMAy4_3drbo~>V|``stBUdi?kbLBUlD>tPI9?X@SQ{qvybxZ43C?vKfMuOco1#f(Ylj$XA~MaA^*-a1~4*> zktvAAD8xuZe$d!Oq1X-;jqxK5Wuc*vyrEuAFlk}}jnN1dH0*6tXpGKsVXiFG@eTF0 zbEVcRc}M-|!`|dtA@JChDtP2Ps;1Ov?_u53x|elt>tC$*ET^7B4d{&U24QM6tOn{>`BsDcgW%YUWB zd#bGmSP!%wgu>%sLjHq!3~|0JJLb$o6pH;&&6yJl$8f$4%iqkI3dx+QCWFkGcCtk} zXO`Ka=1l$LWX?>-!l6`!v2Zvge#_f>r1fvsqpU|;k3s4Cv4s4`+OZ&S#=>z5#bKz% zLMx61Wf=OM4Po%_)sI4biPevhe z3L*c=B!+s6j+`KIszPxBDiRY#63RkCA$g0Ann0rdokI4uDJ05w3YF>p-YKNDO5ULp z=Fh<4G^*ghx#k&^cy4R`yY(N|vruT9O~`+)r6E6PoTE^jj*7;_k%qF+P)KN~NnbSV zZPOkaWxC&Y3TeF(9${RBcM6?LRTvlNQ{o$~)(fo{p^&(kkatXCJSK4;Nyew3Bgq8B zcqEY%BrZ`X&O=3Fl1M^XNGK%l6jBpRT9|MonTSwvB(b+mAyK|ls7&|wP9d$;Z{8{N zgO971QWZE{PN~tp!g{6kDijV^6LNl;n`d*Av8v`UIR$Z;f*3i-2@cmN6qljmFlpqV zEF2U%t$n)Z7ixmZRG7eFYC;7Ed)pKazh}8{L@m?JY#Oq4*J4_$foxhWscW$?9>Q<; zUQ1Qra6Kiy?`plldLs&ln+W-^k;P%CU+|R^9Bx)9u0zFPvdBSMI4C5);HxHZn28mG zLq@3JU~ikkq5KWwGTrkV#+A?TwN}aR_l9}mCy$3)s0#DMZIt-FtMv}+oz}ZhXxvT6 zM>372yWjj@CVumO+47tJ@`J`b3dOCcXiOeyC<_gRPK&3%;Yq%lKx4V^&Hve|Y1rGQ z(3qX&!l)?I&1?>`_4nSiUIW>jVcG8I$^(ykse%XBr1w+e*RHMqvOZ{i$oen}l}89U zzunFl8H$Qrq4KCgaUUuwQ$#AtLPa5=q9%P&vA0cosFdkQrRJJcYn3ob&#xY%3MQOi zJwb`D@mim>K4pCxg~opf`G9E*aegH`&aa+PC>}?3el?|F4ClMF{LT55LUMkkCWD+` z*~u2^`Bj-6>ikOoI61!x`$Tw8$g@<1ed52A8tvz;FIZo+zJ$`>mkIgE?(bX-CeM^} zQ_xH~4>8V^@?-12qEI}CYU@uGx4yD$eTC$mA!>q2{X0YKZBw>>`Oc6s{i}C|RNjx) zdL{1+33Fw~bHuAu!Gm+E*D3KmUhA9Iw@^sDO~^+vi3PhP7K$VmE=kA<67MJ!uc0C_ zbtIuIBosQWgSy8IHG#yRF=4J;lu$8O+S{g(Sd8Vu>`C_< z#T?$HDvXQwDe)~{>xb5ltRJJ$_=J#;Y8p#oxL#0ed zDm8PZ)+%9=&XwO&1rz4VA1U!IU+d4-j`bH58p9Ta#%QK7#9S#m=E{*+n4g5^56zX+ z3dZn8TUq8xg=DT&lR@T6JJ}+gE6eOqbEW=qGFOIsxZ(Zg4gPr;10!o4+oM=VwKlDz zSw~0d^%#VFboY7-UYG7YV@nF!GqxheJwvXHfiV?|0aRmPx;O@uWeg}JZ#-8MOt!&< zJ!4x!#hzhrn=%HrW4W+rl}Qc67Gv`%iF!aAjODikVH6Y??Z_7a)0m;7F#m;}{cGDF-;lw~hbNcIvn z8DuZ9lP%J{q|C;>WTbJqF~F z&qBz@svQsVW<1QQP)v(zJj@u!gR+bVg=9RaNnhi^-Zt$S4`sUF@u2nU84oW*Z(<)) z|3FokKW3-Imw2snTIaIPZJh^&${z{&*ru{0yRPStohWGj*qIpT54l2RUWH;dR8(e) zRFs8^LZ|gp_t%)z1e0AbVgA^aP%(el+on+2jpf4pQKp;O?quV6M&&agtrb7*tR>59 z(=dO`M-@ys-nIFiBlAhhm|R4 zJgh>D<3UbvSX!Z26cvY=BL`*Sppd*RUQIAr4HL%0>V%5%U~ikkVGWiGxRwO$Irl+Q}B_ z5w*+?b>69eoE%frF|avRVGL|ZiC+}9Zf)Jhx~+9PlwNO7$S0^B19D{y?4VF=focrQ z7RP|Hi~)sY45&$8W5C`v?HL1Qy1y}?wMxc7m@h~2e7Pf4FyXkdGbJ94T6eMTio#(x zLO!86ti@F2`EqRvnlINO#`#iCaM)d;*a;Pf*&_#K;h@lI9o4-uRTE6s!-V;AeL}^2 zX>XgtVFQ*6^JSTCW*d^NyH3|y4P+Z>$?`fqJp0&#DmXA-?nQ}jyITKZ-N(8w3XL`) zZ<)qWPlDtJjY6T=6BUg)A`NAsp^!ZLP!nj>KMAt8O`%af2`bb5KKsymCC@&>z7lxs zM^)HY_NUZnA7DMudXV*C>mevq4khFh)l!iwR1Q-p{)&pqoRNyMP*F&zs7YT`>}}H? zDrLIo`B>$AskKU&gkx%W9&|WWVT>F}iSN5wkFp+ZJqCrwv4osospSsuP)~*A2aV$t ziX%|bm@Cpy78(l4Qz12hM*UMEd)pKmCYkJWf+6PC&(D?#M$~cqk6Lg>itHQ_dK;;$@`7MJ`>(=bUIaGpE;8fZwj{l!+MtWZ0k8FRL&*jlbXsl zthndZZ7FD8P2P1RSE!t)P@I8^$~=*ZvQSY--gTrVnAE@P$lf-EO8Ks%GTrm8qso0o zYn8m~D7|(+pDLJe?S3I8-V8h;d$ z;XIw>Z_YFnk~0l88RSgEPPRzTG|FuCwY&ap&w0jkT%U&b9$iUQ==0T-_(H4oTI+Sz z>#hGp>GKVQd~)}Bi0@~}lU#?Fs?Qv=l;wL03d#2r)THiv3bwUh&-WC{ z^l!eWaPB1|K3}8NNWP~K_J!~cq?@P;`@$`h8tq%Hw^?tu-eJ8Hg~45fdU~IZ zWnZ{kp|}~%J(6a>7Mr?RqhK~tK@x1;hs)- zAJRQk!GwE!_fg_$q4fdlzpM{hAF@7-Lgo=dKBdVF^=>42L*`M1;$Bo_{uIe53mJvv z-AHNznfiAl+1sX&Dc_A$rhoNrq{@4ITCe2YNMXE$cOyMURTwW%P~v%^^-1ef)~Bui zL80;tA)m@r4(iUG2gkYd5Mn$hl`B-9RVW@uMP>d-MOmmQB=1R56R6a`C&}J6g~}29 z&u~s!rhDF#R5@O>R>^yk!gvYqNqUZ|FkYUg#H(?wFIr!+zHEKP`YH;U*9iI4CNtDK zljIGV*A^36q0u)sR?B2-r~!-TVr(+L%49rm^nGMvQ8;`?$fq%fp`JL)2@ant6d$7Euu$ZnEF2V)C(ddDhx#YZ_O>Y; z$|ufcIzDl(x!0 z9mF^uWTo?~!x|!We zwr)IVtp>9Dw4}yEm`6V~hwrI^1J74~q{OpC>(ADX^%v`~#mrtA7ZjdWTGrg6gsVYx=hprlS?px$)$t}Cib=|OfF-&z@$t!v&+fW z-5b|h@naTRvfM|;^jtB(nuW13iaO99)!MXzq|rK#bzJLsC^W_=3-I%1?DKWI##P>h9& z#-fpivd~cA{S{prYJ$l>F@eSngbEt=wkb4jWVt}2OgFQe$kN9!XH;IVX}t!ro5Qk` z&l!%d;q!bGQUwpr$0nl0?*&^Yu}*58%sRPs3KTX|67m_%W~fj2$s0CPDHJVKY!-`b zl!c8#@(DjRfld7<{OoO0*p#2}E7S24eqA<|$5*Xa@)^Hyd<|@-rYh_+(@<)(r?pOJ zogRh641|29S`u=C#Ec5X?@^IhJd#ir5()_kHR+3ly=~eLtL}Uh-=o_6^abiHR}?>Fuc)LmTOjpEvU|d^-Ou{|&OGL)DvbXHDK**)Sr@i0fY`9%8vbqD(il zhso9*GqhF%*&|xAJa&fn)h|X>;IIUxMte!?Qr4wWI4ncRXEldMu`q|nD2T)3#K=KT za9CEMSR56Hr6UJr;h>Pbsa{Pm`8OtTc#=@T!QM87!&595IF#x5ruv%mORZJ%p8BwV z1P;ql750x6C^gzET352JY+VI~#;Sz;54AMp2aVMfisez!SSHd?78(i(4K?YDhP`dt zL!(Sb8r|bV<*`%imGB7XnSsaZRKbJu%rz-B+QY4DS=Y9%V_g@8%6f!+wpuE3h06L0 z#TuxnEE}mP3l)WgikkFA#ojjUp;D%M#z^J$y4EUTl0Hw}fGU{qJar>VeErnAiFH%! zW+*f^C*-r6#t=sg*>S|!LZR3Y)e&Pk!5GeWJo%d=hC*`0P?JH97Wzo3h=@JO5=m-ubVY8?;u*eg7~wg!}$GQWfTgohk7Q)w+vySL<#l zGH(d{T+XM+Y}n*9se>N@A%iw4O*|{ zo`1R@>`7JF5B8?SZw6cUvF>YaqwpvQ`CN7Tf$Z21_ERYKLbV^P821BZ*$)(w{Xk6y z*$?bwi*!FIvqS9%`p3zB&>Z&UuR`;Foj}&RCoGUQh&K}QpLeE6dndNbc~f z31h$h4!^x^%GfXO@R#X$hrf30YrT?t{NcD5?(rW_6+AdDo=AyjqSlkFCtFXko{B={ zG(!GIQyJ>+zFeVlxT{V+dP9v8J% z$-VtBM#8=QGpGt<&k4>)F$mcbUq3-I-4;tqw6lbEMv1+8DEHo67 zyZUMZjrzO#_O>ZB%DehyI^NZ<9V1$=$2iCQnVUShq}dKn6p z%L(~>rZUtWeYryA3WeeVR8&@rRFs8^LUKo6O`uYLN8jEyg-Urxzf8wF`ZZ%jYxSG^ z`Q!R}>q@F%!u|ZKDe=tIdad<36b{!Da^BL%rz)P|6yMhw&r;BJ#&g7YogpVU{8OR0 z3KfUdBL`*SpwMYu*S+3S6HK1RgzJnK2o={E_O>Y;USzp&ol&Nn*-K>WuD7&S1KG=3 zvb;w(o;ln=RoGWLY`w*LtMxV%8n+Yj`Ay>$j7;NI3Zn5EG18D9H11F+ZbU_6 zjYvaTXee}AH*{&J2_|n~0*yBb6*TN^Q)s-!a)CyfZf0+jrH^4;R9%_7a?DumWo`V@}NR-7b+@iMk>leMIoW0CVf${ zw@rJfl<7#NW?#`-B}~%utB0t93D+5qP-?UvwLWHj-1-CxjeisJ1x;g!>kQd(e)Xh6 z@i40MtKot%ywO&c^DBkq{7Ov*Ilr=#Ez6+}|P2uVlyh)e8#6)2Pm`)>3~tzfzX-D~06zN=@p{uWW0-p7X0RU44F~ zmFPLYx@TDTow+Yk75e@%rAGS|>#Nq+tgoZ={S89CaNV|+9oza%h2kYt+j{M|t(9e4 zDPt|0Qp4!P4X-~^+>}mJBIl14ef1C6({an;XRMAg9 z7xf9HM*CCiXV%ZHUs%6H>GM~F{LgiLmMMMypF;65sy?q9`>ZT|R!I7+CWG|ZPPRz< zTxNgO=j1z0`nO4+!~KHseQf)hD*DVZ{##1CzSa7@^#_!G{z%9dbwA(baNwibdlYn3 zd!HDOYI0)!{z;+u2G#t%o;nIpWtqPfI<1?#M>RFUq2s(nPLII7v(rp(_Tvs^f; zmFZ^o3E8@1yw++U`&3Jo$M^}%;b*Ggz-;piCBD|VxO60I!#aRMV`M_kyGI%6A9sI0 z;gk6L37?j~pCCVIjH0GRhd)GP{YXPuXee}Ad?q#geuA1n?u#RaR3x&tngnaQ@9`b|7?-YtADjpj| z9?HT)A>pAWeetljO?!Bh>3(@=y?S`uGh)skhbnk*d>@Yzk7KP9SSPf$PnH_4**FR3?g>XGIq4$SLsG`4I zGfzf|->$VzVV%-Cm33;AUjLqu^L|P8ivKa3JV$&@L36}6#5hODl~FK_LNO_-QLs@Q z1G5G&s$jx&Ha#UCwpwSj&ScH3Govt>g^({*HxgvZNSIZjm=4uQ*f@>^Wf=(y$w*L> zK}Ld|Y>|$HGFyFo(7#Q_K{!6NJP!Uq6@BLTFgqo_*J+*8Iu}Ym=O*M!yPrRU&D*|1 zLEHWpV%+v}V%yK7P|SvE+iw!Ly|Qe3g-+|v?zUGGOhy{p+rB}l*!K3eDcgR4<-)cv z)6HyTvUSG?trfpEs3ps1ZWEcqAE^o)=A*>RS*`P17eL{#AR%AI97f?M7tLW*3gXZt zMhD-!bM>gE9%F%PVy zP%MLL9@sq21IjWFC?xZMnhY`z*vS^@JWytTH4h}`#`?F(Jdkepm8lBbeN{@0_G;GE zt!r43+An z)~jN>uT53h?(0(GVXAd~>jo$!HYDUL)NOYevE4UPDAqx>-M5U}U0JrfLbBb}WRUG{ zCtIZ3z06i`cm3OByQkxOW2!JdPMy;D$w?OIVmV|u8x_-)ter}~uY=WwvTg84V zOFtEoeyYhJ{j`%U(teiN>VE3qR`hdgszN`vrPOF|XWibq14=)4B;>pScIazd8PU(3 z6pC$7^>gdkPi5(+Left)8Kj?fvPIg@GF#nG{o9Iu?o3ta=Pr~Q?Om8F|u(oZ|tBJF3Ht?sA(ZBIX+;5hcHNj*OOrS9-p@N3JZ3>OaST4{g)6Hyhvh=a$x>oDOZ(N3Dd*8`%I92fAI_^kH zJR7whWj)$@3<{593HfSudx7lO3yxDLjzF~+Y#;XmW!Vc9lD$Ap2H6YjWQ%k!D6?@d zpzq@{$oT<<<4zgz&Sd@LWIqVU?Mc1;kEbeZ{}U=C-J-6UrjKX1{1dbw1kT7Z*QBj{ikEO zu>H$)Gn<}l{r1;-4P-NfWxLNVCNq!Ise%XBwP#Y|`=Hi;SkJPaZ9NBt%DIG`_uH~p z%!r+-%tS#{GGe46SE!t)P@I8^%8rqWvQSazv>xeFQ4>sN!2~L^5-OA~>nn6x&vn0vp(dE{ z-BfLTUL#et_3dp_wmz>}id(--H#1(&(#Jlb_2PvgVcG8IYNzmTH{C!LJUCX~M2Y8{ z)?2K%qL8?akn@&O_Jh;;sUzb}3W>8>F6;+ox|y9rw(eM|wHnCI)sp40a!PZ!gQ_qt?xMs`4!a4ktdFBm zd4iCyQ%gmzQ2Dn)@gOQHyGAO?LPa5=q9%P&vA0cosFdkQrRF)W)+%9=KIeUsDwuHo z@H8cUD%bjq^;zq4C^Y^{$k#QEA)biIj=A!Ah2kkxbLDP=F`P%I{LNgckj#~8GRRzM zCtIX*WtkmnuGBwH=E`s%IE;Z8s0w4?B})8MuJsk`tJc@7ucP$(4MM(N?HG_NW8h7N z;zd+rVD~r%lw}MkBx68L`WgfFwrS58DAWCo0j*Us1_G0*JWsquRbcWCC7y>`-?P4N z{lNMm3X_ir`TAyZIlGx>iz_H-wz!fQXA8N)a zuzqR%%KAU+*C=GZA>

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


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

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

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

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

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

RF{eI=gCp`63&yO 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 aok~A<-HE?W^)_`9L%-_>s-#m5X#WSf38Nzb literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..be64036f12fe7cba2ad12805e011cea81b2320f8 GIT binary patch literal 18808 zcmeHv2Ut_fw(#toP(m+)NDW1#NZ6qXDo7VZ1gVN51PBl*!6Zmg5l~TVV8t%jJJ`FT z*xNxo_68QL2#OxN{A=$d5IuVCx$nRCyYIW-+niZ#)~so3&&--^PjC$S>EroR>G#6I z@7ezm7wU&lQV9)pOF9%QHPD94n98`al>HG;_mu~c1|%FIITFAl#VAxPSNVnz4aFCU z6+uSo|KcIDQU@S3RyLoBkf$6%y?Y^4gF%KRLb>LEJrPm?M0g-%2>5^cc=kjnK&CJ& zi6i0wKa7+~`X=dGr_=7N=5>B9jS*jiA!iH@&y6| zs~jW%J3N$*xL`9AB_lqiVu8p~5s=FPsSxrxNCbL(;KWZ2JpfcNXp;!Ecpy*ti6sk4 zhk$;I|C~?)IR;QqFDUB+_A=m)3#CO+3j%9-fJGq5KrHBSHkHGpbXXGoEJ=F>pv{H4 z#{!=Sln_cpg1!*inhZSo3`V-0^<+_f$%B#OQ1;0DV5+PD+98CL3^g;US_CKyc(V6h zy&g-oSvp$2RE>#L-?L=2{`GzEK0CHLzxz<*%R+4A2Anheu|Y!m z54k4WLV0p_$#E3`=D>V*jl#cj%vmT2Y^PK87D7ufm;o+$23aFH+gUKbq_?D?RA>!C z8)3Zv{v5DC+l#W#l(8ZNseqadu{Us`4J@!-K=nIBqDguv*$U}6k{s!I|JwPI?f)R8 z1N{$$`uWhJZ17Q$%&7m&_qIV#SfJwvZ=Tc-#eTd7cA6h;{pbmfP?imeKz10cfZw=))D6lxLK~Ce&lNd9elp0&aU_6p0PFymOK}O1lK}eU zpBqSApkK*g13^heXrmXrNkY)g0IhVGZ6>TT0z>5Gs)U>>B( z{s_&$5E>0M?8nqvPI_}?Kk+#r1Lz~5e;Y8l6845O47pO0ik^U=DEb}hAst$rw&}C=z4SfxHS}Zj6+3!< zecI9CSUVc)aDD+)M^Dvf6pwc}-|pm5O&^5zL)rr4Squ2AgsumCQ$jZaZiloFbik>Q zHYAc}0(O+po`Az8bUa|8gf0YJ3h4ysmjhl3sUGM`z*`~R0lEh8VF_Ie_@aca2YgpT zHv(>h^c3_-46aVmB-W77BxXuz5?eze`$YhDgY*_?Pr!i^Iu!752^|l34I~8fT?6XLbm~?fe(6uTm!HbUENENaH~VCbDA@;AN1E@iE}u1~xYMH!Vy|n&Gq}O2)!z zAQaOsIE~5`b82{_jqx`_N=qN7(Z6-Ku_Tce1{5XG>lEnODB(87cpjzf04AwoS7L_Q zkoGACXf2#J%tj`6xJ>SFG8X_1A8w-yWiSfTC@2S}t>7S}WCMrx@Il_<6PftE9_z#+ z#4j582FSt61@i(6iFvq4z{^Y_k0!_vUbGMLAS*zq8-!NmyKNpBjtqf@R~VTOj12Sz z+#C1{P>;EHIzIt;6vpKwA+Mw)iiphQr1MfTxk)Hmz!P!1*uYGl2udWTb%}iVS$RK* z!t;b8ZU!qXJ5$8V;Ie%98Ckq^t{|K%7|ToK3R#hvLQXOlc?r1ToD8nG4iwJI=Y}LB zFJTxr8FkhJi;ToP3KT-~1YDtTpn%H}aRm{noXjraV91~(Ucyj5FB9?+D^bK3fI;*R z+JnNg6GQ?|qKNFjcb*8Eku2njI>j=g$jk(OF4ZR3{e=8%K_d4D>nMtop3RNO%Yyz1 zh1`sU^t@oMh(m^bULu&MglrMyNU2C6CxzR|b(Vi7;tGU3e&(Oc1ZF1l z1sNO>WOCAfspZQRCJK02q*j*+@dQyt!?@|3T#6EQ(G@H)jWXebbVRku5A(`oUKQoe%#mSV(koXU223nNBOXrDXa>tV6{KMe?%GFp& z>FE+x6yY!6XCOW_mzRl>xIz&xlj?7$DQ@T z{)5{}bl^=V-&c6ZWn!QXQe<=k=2K5cqO*^o%cB(hF3=lrlFr0PXi3QjQM3_GqsgQBl+JRDqz_QAgo2F}jG!Q_u#h{B zfwax)Io;IJR3Y-OcN}firg+NzBYLjqEz~M67 zA?WF6N#1yLf;?%!35_hL2b{bNcM;Y?4N0CIb`2@XaE)-+V=T!#hn~ZTnMt@})DDr2 zjf7i_K77Yvm=SEYM&{-Yq!8 z^y=hFktt>+!`Wcgo!l+tirJtLsZGoqvqjMoP96=yddqN;7(@V_d804_Wl1?~6y|`k zCEQmi=On{LVlJq-Gj9~;ie^i=Zcwf-nkV55F&@?*Es}8Xc3>W8g@juToF`f%;r0RN zjW&@SD$)BLIbr19gaQ5$z6WQ=(GGwZ`fFNTR;(kYWlNC~8sdQmO6~l!k{(c2+!Cps z|Cyva)dq13WubLv-*FV$sq<^v?{DbH+7auwQRC@Bl^q2TM~T0rH4!;8Jt$}ja3bag za0})|NdhT)C08Jva-EKpcSKD2Rgg z0E5t1@KPTN_CswzJ5taVT?X15Z3mc$7J{Y_9m72-Yw;9JL60eIZ(8m1S?1| zLxPnhSXF}6C0J8}wIx`G!gRPx65F$uU|R{cL(i#Q!w%_y*XSX8iJUFLjuPxF!F?py zO@jMLu)72gkYFzf_K{#e2_6Vo1N9*LNMlkx{V`@lg_Y!fM=yl%6cpsay-7YS+>1?) z7P-ABT>cb&V%yEO)vU>z)VFsOg4LJ=th5{uK zV+}buhCEf3Az6$n4>m~x{)3^!7#cWmq=0M%AVVdnQ=G3zwu3aT*d@~=Nj-5sNlH}Z zm>8z1V~J5Q363IgRj>4Peok<9x`>yR&IJJ@Ff)})1`|n$4$5jK7}5{sB?|aLezNHJ zHYRI`Uj)-%0P#Q$UyufY964nXxNfw7lLZGPzuZJFb!v@B74UO}my>y%>Y9>WR0B_N{_fO9Xc3NmV_$gd5j(*fO96fCD|X}$n0z~6K+4U z_yX$a$YL^~yG-hUCuBm10)Y-U39k3_p_-qT08fQMz~!j7l_V7vVKSj|>7#Dq3ztqa z@VX1)=Wp`o0%z2B=$PE-=qQ(#{I0w>zvKE}=imRUe2osBqyHd(x$8!(Gbwdtq)AW0^apz?v2I!veju|`^eZM{rSWc-1&|Cjk>=8WTk zwzYMXJqb-(5Zj+o8(=FQGBMw;UVVP8`kvZ4Nj~ruKk#$KJPejqd56x{tKf;yf2%t1 z1TUPXp{v4D(Y5MrsY^KNy7tF$T-VcAZ>FMLcT2a>o__c!Q@o%QE0}{-e8d;e!UUHw z!FH?(!#`7}fc@y(&!e)QP*66M={BjZ2 zT{x4{am<5Gr(qt7bUNmtLYKolH0bh}M>o0x=AlPd#5@e?49tT`SHe6j=-QY^0KFUL zF_^A{d4$q+aSx9OdUwoY2My8nFprV+9+*cwT_5vEq8nfysdPikBb{!9d1TRzF%J>l z1oOy+7u{n#-4ydEggxG4GTj{Wm?nMUaYa|90ZQR?x}plX&&k34CApDFX#!RXDP1lj zuaTkanM$2H$W*nHUPS6B(2+tIjlkovEYh}@hS~Yq{wdi8@SD8U?hRR6GV}%++Eu0< zuw-?XJtL!2D?_)DH0*M8Z*iYAOqHn93%T&EfcrWIY$ZClhKC=-nfp)@c2{mWUNRPO zX{OE&Ox%wd3SpG4A!1n5O&R7rtZ^odLB|<#jB*W)Q+uT1;j&_@ONcR?($2$~^iFMt zj|M9k&(z(8oWXV&6VuUHhbl0-sdEAYibpa-Lx3_h8R3hojZq#a5;(Y zP#+Cvc?OXo=Z-gb=9~X1-GEg+ z4ca7N(xJa{j8JT-5A!0vPPaE&fPvhbNt4JiT{E@4b$E;TKBF7&aN}8247E^{M6|j{FhCD5jF0YM8hO@N^ zO_EX6R*L2bQ{iS*#Lr}F5Nf1QL0ch=o0P%NOkx`ohNMJE`{##owiRJX=F_xIWDn~} zTxK}@2m)4_p*~(r2ZGHejJvC{-3VvG!GZ1A$H^t8yQ%{r!xEx@OZz14r~RV+L@{P2 zJ5Vrpv|>yh<{DGNi!lr>h&ffl8))QY{5rBOIs1=<2)$w5QhK$mwmC%$IMf{FG%=8a zznYwz+-rW6Y46=tFZW*Tw|&E&M}`W?8ISurgn3c~0 zHm@EcREz7kdduh7IhR!rIkMM(9)GYqZ@OB(byQ1lttW3DE^j>Tp6__7wyvyv)Qis_ z-%c3e6nMiX;zhcK^|UFTr|;FR>i*H{pD^n;B9zS5qz4iM*Z2`WY-^$y z={(BXGO=Mu7FQe@3YnqVT!Dzs4C5v8*}6nGQdLe{)xnV<*bcT%&Q5GcXK{1*94dFEcvJU2eav=eY&e&VFCZewDoyCYL=X{JIk3{N#3xlG%Ia%xpOcfr%8*9U ztVDi>eO4NepCz$7E@(*!;@MdCaT#bx}*qaH~ z@q1ESKdjvN>Wi=D9}}X|504iV^uBG}d@W{*i8KGCWfa$LJY!MpvC5?4KkeaE`w6ztp`tJEx4ldAY|#4`1B?8x`Xfjxm!5Pa*B<-(gb%LnfL zW)Qh;{2(iW2rNw){c^1RKBc??zc9;vBJVv%apgTu zzhfpZ+=`#Dmc_Yeb@vWKr#T#n4If3J3bq2}k;J!*0$O!zptx#Zgwp~mf)kz4aN zeDK{`GcSMGwaGhg%scU@J<}y+f_}=Us)sixvChnB2x3)hE%(0Ka&+1NzwUlzqd%k! zoq4fPvtZr!rLFzVtPK1Y87Ut=wp2-D>*`JKR<(bL&3iJ}{BrQqtyvGIggQrTyS6MA5W=%hC$VH~C7^w5_|A{xCjY#Pk9G<|XqI;g@EnSGFh> zelQf}b!`G{q7UKfKsdV*ZsaE5La}UuWdGxvR5AYN?EojY101#kc;_~^eG+IGvbNsH z+*GU)>~!GGo?)gdy$x*Ap2dW2+9&U-PY*mWu};PKZlAPMS~ry2T#ql7uQ}s(73;?K zzEY~1mo&9te!N9`^@_k{&r(M<++P~LL#cON_05g8+wvLJ*B1^y7q2h(EP3oxhcHVm z`zM%oV%_vQQhu}=e!RO?jM(J%>)vRaidXw>SvH*nOAmKL8mlWvaNF|NemrpNY~ zu}@1wChNbcvLF7ayr11R$6+V;dVF)ZvXkb%eMj|N*Mf%Sg}vVmiJD{T+_TOtGihS@ zfo1Ajdzeo?|Mmc_WY+t*w)(K6Gv`k|RBI~g8K-Bp=Rz+l*Pe^q2D$t;e*4^QhUV)x zCcosEjBc_DTpl;=LC@GLra>NICw4~UB&FL!H_9~`SF8rO2ICFn_@^?Gfqb?Yaj6gE#!$c@`!Klys}vXMt~tgK$QWYk%e z^)B=56LPF+if`!&#^95`ul2DPEqI^#A(uIMV&&8SCbfo?cm#aIb`x5TsumV^~KrcKKr}L4QYD5{xtitd8rc-LzXb1!%jqm zR0dZDl>|z5A=s_{yv_$m9H`wgLh)`mP zl!wjE`>!@T`$XwZ_ZRj>MA1sJ@l1MA1yMAgD4NqbNGuvrG>I4>tq#X@9sjC2a`R5& zCkpMe1iTE6ATKdX$VwGu5T2a|aKg#hfoUZ3(P|v^A#gf;9GD0nGseMBVj}o(RQ!Rm z__Jje)98lsgxh%#<6;Pe5ey# z&Y1M=$bhFx=lUHTxN&tm?{?x*Gv~DxvE0e!6K42_M&3}FJHA0b$gsV?_l&Umny+aO zJrr2hOPk#d*8aZRC}+OggJ(%+ecf~O&D*sntSc8yn)UX)CGKx?e7eTLH5=trmbRpR zN@Xpmv>9NNHY_mFgu%;+`O$bZK&TcSBEjZ^e1kA+v~%< z-hG+8MLULY!gnh^98KFBRPo?NcCP-*=Y1CE=>>IM+i9Mf-CX_Y%ZwMwh0l5Y zs=p8|^ue?5-_OoSoa26ZdDM`QqlM9CRk@lDrunU2O4|o~-f&?}?6In8OQXj`4GHk8 z^*+0F>bh>}3Oi}NM)t)`(>BQ_u&ExlVU)p?n!bwl($LE&5 zK3#3(uP}vvOD!et509n&Uv}R;bpNK_wo&#P zaf&_exn0Y=s$#9jM6p&==it(47`s^OGRQ7=&JcMwp>+gA2XKt`=evnwY^c1l)C)A= zdZHNfgt6@pTbe6)v&8h|;Yu{@CzlgN&5N{cV`H~$v#-3;G$Z=@v&pTa(+hSijTwc! zzv%_`z~y821-oA3>1o4O;s$ZQBb)6EpE$GnxH!fT^gO3m0)RvY3)zJ1dLTVEpK>;Y#La*Od%eRvft*k?n zS2E-OEdwCw8BN=$YXD?gEV+;&s0$faHsRppz-Bu+IEyc2V8SHqf7SeeZ~ysVFMH2Z zpSbJZkkg?fE2`(19(oq>@Mhcj4N(p)yi|wnhgY`VJa*;ny|7uEY6DK5=9jFz6)N^gJO4-vFmhDhlHT1Ke zmr|7P>ZX(H6M7yn={7WCcR-qv!YJceado^)^UG$w?RCF-ea7;O@yWIqE-f}bW_u>= zWKHGgZ;#4#JGiv_IlY#38ysRX;`0)G=!m-4*0WRAzOB*tl8aS;Yf0co^sl>q{cuo$ z?}+E@{)BLem%^GX?R}YwsajKyg>3rR*x}DR!wNn4du#A}BB8!Sb5^&a{KZEej(!wx zome`v;Dy$(7U{v(07k02%rSP^K9gPw-RB%sHD%q@dh+5J-BD7dR?;?Ltu3E^O)~8Y4Z) z!AX?7R2?Mc;Uwzut8Ik5*XcTm{=)W;_bu9F4|>v72qkG1G{qlYU$`j5P}ZcDrN*pV zcOLXjTk*cfyxpyjH(Yo+cK^~Fv2&(7ek|`Fqc(2IVcyg6w=;(8Bveehd7);p)?20h zVY-JiDkCD69DCKicg)UJ`|bsmrS!N{#~Xgbx9m30#ii+s-}MywruM`ubuWhfPE6H) zrO6uOR(mFW(p0SJX!iB)vG*?R&-Cx3$J%)>VOcMS?(MNkeH-E04@5 zq%0m?Q`W5fwRGEQpA)m?Mx+KGQq)*cxnu0tGlD~N{noG3ZF8{U`s(?e&|J2s$MMox zd?Q=?vpck{X)F5ooon8Z{k3d-matEs4ORWq(pul#El>(kIkKSkjJtdH_vy3=K?b#Y zC5c3_{1{mHhD$FY7)9{)Jv{gigZ01X5<aRtXhP`P?!-HK=#o$-2j!<74-FB-@T?(+TfI zXPbB#=r1t3#L%8SoEDHe>bq` z;!%ruhhg#lZ-xylahPl@;-t)pD~j0u+q}VZkDXW-dzqu1X?05fV@ct``)k#W8&TxoxSDobnjr#p_kQ{$$O+se3x8HTj*QRS|9W^^YM~% z+c&()w^3rZ-5Mf4XU{Z6=cl=bHP04b?El2x_rUtMcajdT!HzK*^KvhKIaGVrH+Gcn zGE6SSELgfyHN#5v;4ee)pDs=Rk`VmrA5rJao~|01kb2pDe))*&mzLIzwd1 zqUU1g;P|gv^nPI*Lhnj)or904I_MC@6wM`y%D#)fiwJk=`UlZB`Xi%Uy^!5o2 zw@>0GbKvW>zY%+f!atqtioMByYW%liZ-wS*LscJ~YFsp+XbjDL`RXcD{>~TcF1%wO z`AzP@#&4gZGkOp^kDp9FJNo{+CvCZhPj6V!^Wn!sEol+ainc?GeYHOC51)DAZM@d> zu@^i&y_Vh?*}Y@r$5Gv#7gYAMt|-UkkJTzqQcTE-V{veQ3{DdQ;X)he5r*MpoN@+w*v~n3#n30q;! zyuRvy&G5xq>`pV>0xmes!P8*eY%vEF;t+24A21vi#_ zv{|xRGnu$@P~;GFKXKf<#nbH#PMcN_-@WaQZ~uzWG1sdaPDVcD-HSeU`5saG^+I#- zXVs&zAMlZvwI}4nR6%X8UxqT(B?4D>^pjK5eehIE* z;kQ+Yy+2g__k|Oy%$1;P3i5KcYBXG*rh}H6vp-fJ*kU=k-s^p6^akOUd3t>+;cl#` za81E~c)ybQWl9eI7b9}0DfK`aVWy|v8UH~DNc4&66gZJFAqa>ZSX{(+3=nM6F}6J% z^^_zA$jekE0Px#3T(NWz3KXrmR;(~u`30%qB2yeEe~RwBv>>Bbyi$o!B#Y4$s+d($ z8Y`)kJ(@t1X+=dSyxcpa#nY0|rGCFYV7DDx4hkc1GJTA0u$oJL-MivqxIH+U<{auX~nPu;$$)%&j(+ zj8_Y-i*MFRoOg&>vvq1VLcd4vH!o2`_(d9E>$av22_7mx*{G{_kU(PO6b|0BI^O{+$TJ=VExA)Fp6s+HT zF?+M9a{PO%kSBo_ult1+1g1T4Q&?ka5g1Y&FUYssJkucRV@dLryngE+z46+#`NY1< z&$@r1~^d!>=#C-w4nnj?rVZ7(+dn|6+y%rbHx7 z2s;sc3@)}>*q-#GMOekM4bl+~V+OenOs+DqikBQSCJ6Ab6S0?TVW|(h<54_7J<9K zO&=Y#%?bIM0<~xt*->YXbvn4|QzXQ6llng*emP3;@%vBnA;Ug;-7JF7;V$D}b~} zRElcQQn3J1xtK5JK`#fL37I~R*gpSBAo|0aO%%PB!Zsq)ltdv9It_{$uvrk*D?*6l z7fr&4m@T4S1UT0SLAk1cdSML%_lj2d1)#}Km+f^c#i)cm1f)eY946Ae?BhYZZtwQILLm~*BTG-dJQ@LJ7kIX;`Vb1G^Z=ct{SI?;; z0rfOuFGB1PqWAS_0opX4`zc4{iiyw)@s|q=jRWkX#4zNiqeT4^0{7y$^tJR~@4FoI zXA}NtQ05@^9K>zlsB~n4I2Lqd8^m&yD8y~(x1ZmaIq)v#=(;IN7}gN?Dz#uGq&k$0 z{VTU^zVf8eL~S$riZmJ}|4zU6wedueiZ)iD3>rsmIIgXx-aFhlxeK+;flnz$qA_Nu z7DDV0MTf*X_=x5sZ!VHYj6q*gt5>2oePWf6$V7E~b8vjK`6!RW@gE24MC8jy9qaKo zLF56ihmHEm11S$Y58TIE4Uii6)89l`#-UyHh#`>Eg*p~vjD_Lb46h~}Q600s|Hz|p z=RqoDF4rOrR|6x?!zQ>&@Jc{!-uh>(Q5KT^`6pwf5EsB@LDd3WKhQOV5Yb3=NExGq z0E`+4u^qx{@OmWU8leGl(M*f@4Kgi<{0$1EYYV!r(3e`o_vu13LdKp+3S!8|mXo5@J7`Y(jGtEd-A1 zfS}^cp9kQ#l_eoYC|gM&=rz)I4hk}SBIBgy!@@r$_!Jolbca`i92di>Wn zE-UBjJl!IW*?ae>(EXcoH{W>oy2{^(j}3o=??qc*M*0)dYe;V(y@~V}qql9 zrVvhCfED2wCxQ=s8`qMMb?}prHbPzo{tKkbA#Vl$0%<2?u}_F|ke(zv_)kdt$-W z$wBZPO6~%GU&%e-BR*07;B`t4f_EZ~ruu+)E4c^U{i(Ejz#Eku1n*RG7kIald%)eF zDSz-rB?rMfmD~m1t>hkX_vgwVyiv(P@J=Onfp;sp2i)DG{J|TQ90c!Fau;~Fl6%12 zUnqa@MkNQqJC)o8-mT;waQEMoKX{{(gW#P??gH;tau2xsOXUyVsN^7cr;@wCyOrDn z?*6;-2X9nz5WG{#UEtkH?g4jyrToDgl^g``RB{)1w~~9n-TzSj;EhTSf_Eyp3%py& zJ>c%Il|Oi+l7rx#O6~&hR&o!x`y1sC-l*gtc&C!Pz`K>)1MdD-`GYqqISAgV9QvTqLN)Cc|D!B{1Tgg4(?uhaSZ&Y#+yi>_t z;N42@0e9o)1MapcfAB^n2f;g)+y&mP)1MapdfAB^n2f;g)+y&mPUXX9&mTG@&|8JauB>z$z9;xO6~!7$0&dBMkNQq zJC)o8-mT;waCfZo2X9nz5WG{#UEtkH?g4klDSz-rB?rMfmD~m1t>hkXcf9fkZ&Y#+ zyi>_t;N42@0e2@TfAB^n2f;g)+y&mP7;r1tISR??&o?+yj1GGH}Qq@LHtpkb~e)A$5^I_yMH7~#(Q5N`k zB&u5x_;MtwTM+ziB&u5%_-ja1xBcLk4zh>>qA@_g}9gpJzSqGnm zM15ERem>Gp*tde;uk5?QizcA&U?;u~iN<6Hc)~>V1MG?5KOhaLl05eWv>kF0_~}Ti zAuj{J3F!jJUEn2?EaGa&72x}j{s?(L_}s~ef#Y5Q-hdRl5aog2hBO3n7x;5X1(5fG zzlu}_c|Ul^6nx(VnfQfB2j-wH;9W=^lo$Ltq{}HU_{gbfFJupRG16|x72ww(@fZfb z9f`(C7x?i-$VdL*e?+2jvLC#)SdNnp@T-t$+-?Vd28qV)UhstJa@;0@k4K_DF9M&9 zMDZ)Y*OuUzFG5|x??<9Byc;}fhOAE_`1MFMhPQ*iSc-my|6Xvqrrr)2S7(t+aLKYA z>24$&LOu%qBGOKz`;neP8VviNz;XG)AIhgb?PU1L(EjuMho09Wk?;TIxKyKdS*;IM z?WncqXA<3qbmY%21$}6Cv2tI*BCXRR?U3h3oJN1_n})j+<_x{^=i9!GM1K7Jm)q8K zbnQW6g1Op7%toKYhmjpMJS*;%@R6pFBO~)r_Yj zPdq(kgV-I3I3xRhgn#6{eN&b>_e46-8qz=i5_-{|h(ml%IzIb;?1>Q$ME6Mz9X^^f81IFKA7*)54QXl z`jqx5?7@_jc9lVzp-^9EB3Y5tXWBGF`cH8*F4Gjt64^&%q#Y?iME1q?^#}S0HL;?a zrusxIoY!eYm`48Xk%UOX7i5~o;|-x8TO&`C2_HHv^l3-h#xbX%K=mPjKa{6`-JmA) zur(6-Ci0$=WDP!y$eQ-nM4<<>?+-Q{s>?nG?F2SW;&k};d>)Cs)y~6wEnD07MZTm~ zWRfOFj$Bh1HHd77q5VfVbry}r|46X^)j?>eOgprO?QD{?ADV#S9EtSK#STjc4v=V9 zpMI`5V)TK{G$t_SkNBBJ-m(Dra6#vww zh9lV{Yx!!qLwY6j-UI6OpSHW#ra~u>bEZ;oQ66~$a=X+~TikE!#US8z#y51WzJC3B zT(2vnH@ed44%E@l(H=P314nz{Xb=34^#I+sY{%-14}WLEr-Gy8Xb&9ifulWeP!Ie| zi_)}y-c|~QFWB~DwW)ryAB3+DkMRBSL2kWj-wqdF|I&x+$zLX^J>=Js_Jn;5naDQN zH#a6TzC`}vhav6lVrs`?i#P}ALZmH7S0G)Dv<+zo(rrk0Bi)bm1kyW52arBSie6$7 zaY)mV0!SAjU4nEK(#=S>Ae|4ti;ylwx(?|Eq??g$MY;#+A*4rO=cc2dUB0YvQ z82T`zF-RVye58p;laPv#mLQ#m)P%GKX)RJa(%DEGk17kY~mwCcgHVU*{PXJ-#nDyqe3)c2Ff(stI%!%6dFPYlD6g8nK zRWb;Zq+ftZ2L;GHT!113n6M91EgfA{Wz~N~sH%bPJ~_j^a=jg0IXZ@q6Ln{{dp)Qv z3m1yf?nW&O?TsGevZXDsr!COjn$>0}$l*pCtsV`(hm#*ID~jTjBv`VdNyveK4vD6? z(W3|0(mB6jL{NuY#^g$|oW7t>PE+#9Rvk-{sMaLQELxHoU9${@TRk@XS_vHE10Wh! z9j#?1*2Xx~m&RIk@j8AsGo)sjBQv^o*-Mo+oqka7kU^l!@pT{aV<07A7#G^Lm!lnS zL_*^Vhw8flX+!Fky&S_MLCc(0z3k;!*RUGrGIBz3g$4S4a>|T_SDf@3QpbKNHdCe) zdy;)vO_FWdu$ri4ZXJ)=BTq8&q&SpUtjZ+^9ZHo!T;?EANl^&mLXadU5yvujj;7P% zTb=fk)jhraX*5L_u!J!-quq=6u#R!k%yMK~26WIdHI7*s>OdbY3){?SYg(QQy^JR1 z#)RM&3@5^RrY$Wm&e~{eT%yxNZUmOui)q#@_&79MRx%yPVcJ=kYc}^WnspruFrZv% zV4=mTjg1M7=?jo<)s`*^$5ZYF>uvBIIVNUQI|*57WNf7R!j#i=e5a+DYL4)zNNYz!;ViCP7ED zF{?og7$aQ5BU>b1ig#khzZ6#kuV85jcYvsVg$!g zl`si;?yG$?!iwsVJ zzMJ5P3C4htFbO)X;rcWXBY1`Zlb{z7Ty25}8ZZg^GJ*ppc#r{;pl>HQVuA-7FbTTA zn98Ff(JBX2cm;sZZcMu#g!I-MD-6ZG&BTk;4cmkcd z9#dMvB;SEU=s8W zf+Hq)qydwl3k+wy9mL2z%797GI|z=L;NuLK1RZC0z#vBMECVJ%r=Mu*+dvHXcmpOu z-%fDE1iKBG1YKY<=n)VjceVkOpbJa}y&Xf|fJYlJ33>+*eVYj$W56Wn+X;@C;2Z-c zK^K@SdOL=^5qzuxlc0A1(YKjkj{%dQZzninf^!X+1YO`T>zN=%@H_)1LDvbMW`gq# zm;}9u;A#_GV8A5k%Lr~a!G#7)g5E)J!~~BsU=nnJd8*$HVpMIs0h6G25gakW6AYLH zU0@pP^FfT<6AhRIy@KF&6MTXJlc0AHyw3zrGGG$){RBr$@MHrfLB}ur(WxLt*;5Rd z1YIZiZWBD!fJxB12#%QGX$DM!F0jJr?I1?*A_FEt?;v=W2`)BZ67<~!M@;Z^113Qi zSfBLyAV%;K113SQAh_KG&oE#T^bUfznBYGm05RZs226q;BzT(%o^QY;=-Ub2V}dITm;`+Y;0h6HP9TI>+ z4A^JDBK1s9KvVI|z=L;1&ZWK^Hhp>-#{A z+yMh7LGK|rVuFJPOoEQzvtpKj7`e|dU=s8qg14FAkO7mRZzning2M((f{qt@pi@DN z;H?Hsg6<)BiwSNsU=sAL1aC9JD-Df$_YfR0!D|ed z1Rbv@0Ssc){7eHTL8rR~dIZFP&oW>Vbb8&5zH4qDyw-q8(02pTBPMvA0h6HPbuECm z_2ph~z$EBmJK!xl`rvj0CPCi{MBihAI}DfveJ{Zg6THEINzlbDfT#VcFZkI8OoCnn zMBiqD&oN*U^z8&kOz=hnCP5ds0?q_6dhJ{TCPCK;j+o%{444F+e%+;y1u=4;Z@?tz z9)hQt;0p|x1igshb`yM|0h6G25WLR>|H6Pt(DxG@F~OS*m;@a!7DClPjH+E^z$EA% zf~!sNW&zA6+9d`|g1(I4 zb`yN50h6G25WLR>UuM80==%wdnBdC|m;_zi4tOkxQT7!EOoHwqIADUWG++|+Ai=v# z@Kpv(g1(#JhzY*hfJxBB9f0qCt*`8B444GH3y2;u!Pgov3A*@};P3i!UuVE1=;C|8 z^FfS;U2ni7=oJJ*osZd&N_`#`cBz<2o?1*){f*Mhm&i7fV-B!9HqPtv4*1@&W zR)8@wtm6u2pC{En6MjzkrA23_YF5W987D6(&w3Pj$7l{W-_5t>eVFQApk+pnkIF0t zTe{>Wccw=JC1ajp%(hA6$yRMpUDjiWP-)XL6RM@?9<&}Suno6i!_NRB{+#4le<%L7 zmi06^9m!_XkqlVz>+p40`EA--qFE2YNjr3aajXf53>%duwdf==HWouCZ1tlhA<<1?e>ac@Vz(Z`myKR+e} zt#|YV-htzo7<>s4Z_E0eGFdZ^$xm31W!}cN&!lY>Y*=6W*(Sq=b+4aoDr{Jf%r*|Q zhr;l&_Mskhtka@3{`SZ@2wyRb`O5AXw4@5jmTR}C;d>`*=BP?*#*##fHS<_QSY0WP zIgEU;9!I1~ZBT8Zux2bxv}j`vSTP7_R8Y1_mFbu!Jnm1X#^aN|8Dmr%nU&od|8A>v~mccnB^Er8b9t-K$b_F=FnN>=9xZFt1XB!LhuePw~CZ zNwNy~j^Ix)(b&Q8=sONPcCcP!>=0FBheaAY(wccH4+y0!J7{!pk^M#oW$zmuXIlC2 zBb-qz7lnKMyQz}#nXyKH;j~D%c9VYAcp0{|6vvb1CEXqr=}6;|Xs#ZIWX(J^$DQq2 ze;4W!ot?k_ZsytRyORFZOK~JUm%Sh%w+!9hKw~v z;Hk#IYf}Qgo2t#?Q74C{HmtTWGoi8C-_JPcaK=OY>_boylt}Ht8IwPU8=rJkJ7{oa zY(@huBhxZZyr049_Ov8tcqoFV z*s{x_xF=HZ6<*pF>XVe1q?r9F(OOcpDN39XB{nJ6h!T~S6c@&c2~pDaBbRaBt+oid zrJrPtj(4P0#XHk-v+ULk+sTa?@y?SQvoMqa#5+!mcP^>2#XFZKYSwtCTxa5)F?JTq zV_k7+DK?xpQ|uEiLq{dq#@M1_vt#geW%^P+RmDPNAx?A2g?A8gSY2{-+0qf0i@|sA z+4EdcVIAcr+mc;bm|y4(Er~|AGq4ZZnAmu`!@4x%ltw>>QIc&mx`;})CaHSalBk*- zE(x`kXcAWWX?6JKn}mEnh*2|Fa_mp3*kcS%ibaXhvc#x(7tSh4(bc0-n$;mo%W!K+ zQK&~uZ#@ho-EB>Zk-cI|is>yqW=T~%O2V2>-z%os~g$R19-7K` z+Lf^+HpzxgvnAQ$ZFvWP+7CjxOEEU{KGLj+9-zpVJk zn9+7Tk1@ucwm&*M$|*-L=FVXn;IWTMKm#uJbM3Lw`%l)M`hAHe=*yraJVAibA03^b zWsLxj$@J|1DIqqq3>4$po|fWBOL0#420jUvB=wvKbs6PyOvG7HXi2u0v;GE+X5{+c zVzI~{o`e(e$P|YPI(0YPU|O2uNJlW%qQ=A^a5^Rn79xOYxnmM6X((YNYLOD19Bs=Q z1&IsAz>H3`Bwzw$;gk}csG(L#QCV5Np2tHPV@K@l26#oGzolP-C7mCINwj1a^+v(~ zx6|`3judB-bIdqYUrxr+Nti@SXw^~G&W$CDtaNrf%(APdeTfG^{`CqYH^xo$2@g_p zoul1J&W!w_@%Ayp?MC3GRq-~bDtl>F20YRy(WwD7bY*5FyLiTpo|Bc0Fs>w5RAyOV zG<88ta%@ymOcq9Bv^p-M6ScGM#eqn&CC6rsf&J#>SX&nL(&%~UpcvIX*#nPI_CPm! z%dWakRea(PKSm;UN549zxsMPa9eYvURL0u_2hi1Yj*SwV&=~9yXw2oHE;NrJj)gcT zMWbHuK;$_*GB!0oE5TyR%7tZgs$F3y+>lT-mTFrXmOpe^9=S!CE%~s}INcwoMZuu} zs!;-#6IZ;Q&oNXlJHI0*5%rR1sb~kEmSSvbNl#C4WCx7Z+(yG#uI3Q?ujaA5n)Bk4 zJ>ih`+o>fvosML?TsP%;&FVxie}Vqt6&!PhMxUhiyo+G8Cpql-lWo0c5La@vTBl8C zhA0gABSw~Ml~tTc!%p@+&v#t?)g)M)^1-iI7fPIFx!Ju zBMuoq1%nxBO|~Z6cq)yF(xP}4jpkma5|-k$6ywCzgRC<~v@QE4=R=N$&*K#)P zV!zsP;j%7X?(j9oWtHfMXa~T&Pwb#L%qQB?jjfsXQl&i|reA4kc{a_4XK6mAlLd}p zGw{JeLwjil3Uny1_7A1pTX6?2lDIM!>U9b+<3;dfBs zF$vrs(F$_h>~QCVhEwc9D)4ko??C3wE}TBs(X5k?0l9N%{$zL1g6KX`+O(|u5pUgn zWV%N^Erc`OeH06Y<9IQV1^q$!{@$C<8o=H@Iy!rhBQOC%jPs>f zrz<~JhH}Y3fr&uIy!|%zgbqjG1SoHzlPx$n8s6PKY7)Oj8uQMIcUxostICMhj6Sdi zutqqdtpN;I2R+)DBEvgeOJ3p<~Otobf zIl14ovq*c1@41W~qDgh#1F&i7?2mgADkFPhQr<3Qy7CJk4{XHhQqpzu^w z?94o=UWBu@1qUJp;}7EuqlM-p)i3j>{0!|Zsz0|RKSoQF^^497kb^Xbw% z3oo4H^Nt+L2=`B~y)hzi?M+l(d$X7+Z^cNvy83qayTqmp|MU`@9n>W@UF+S5dSIpa zm#(dGocJCYHfa1mA8^*^|0aNYH91bYz|PB_u>MKZBszQ2`bU}PuiwQyd;MSKj%6-1-bfPXS3xn*V$y3^JF>dPM`mQ>ukQnrgr>V z7TI_I2LsEv{}YFrbzlk|blHpRYwF1U*TT5Ire5uD#P#*=LyWk-rvC2liR)|X{QgE< zU(=E3Z#?FP4mzB;t@IQz+(#Nj9SDwB`pI?uY_utj=0{crOozXp^m}C1))H0slURHf zjSr2$Qb~7!GaSyqbWA}k;RL$)o)X{ub?}8+-oCWB>~sn8&F!dVFR@Ql`jWV)%*4F+ z`)*Hi9sA7=3i(fG2Ro?QA@7BR(602KIX`IoXQjuZ9np@LlP$ROgRXSM+fE#~#GVUI zHxg}`BP(sVk*L|6in}C_$5kI3s~p4XMn;d>mF_LVo}!vSX(=1!^ecOn*z=On)fcTC&_5^47NcLREp%mfAp_Z((cw1Tn)$ zVr8wj$s1baZEEw)3bD+O{?iz1Pvp3Y=Skky+VT-@s@2e}X^9340-r({udxZUg z7FnIS{&20Ysma^o3$%sjdRv$Kno%g)Q@N(OCeRd?Ua}z-Az#?n(h5A#GBXfrR$ygY zFxcd4CZwr26bh_T_JdnGo!j59P11B|o231qHYwwOQDNzIgbGXW&aA9-Ra<8{Vie>(gx4}?muss?`lT$pi_JzSu(F`7MR^zll+Cl6ybXaSKgNm75(paNtdP%#ir1C&nT(vq(Bv#L zd@Iqs25-pU&&=8TTYP~~gWuab3pn@mKrql8sPCNuY*Zt?1aa$-p|~ax@;CTfXe48N zV;;((kBO)%-CW~uLFddshlHpt-lnE)VxE1%`>{_4Kyo zei^yS>!0K6cN|n4u^2O7E*}46T@m$%U2bHhm-|A26+WN9^sDjLEx=;n6Dqn?xJpu_ zTFncz_(Vw)QBo`0aLijUi&;C-i-TY&)7#Kly^6O&j@)}8EO^A zK~q3NRamVsE|#<39A8UAs}yH@*LauD!T(P}BNllj$K;X1thP{d+lu8r^;8m93#Zr z#IF4ow&J=v45_*IuBq@ zSG2X%wzl!=&)_Uyi!bDDI@oMpT@S|Q(?a3J5kgRYi(9@HDs6;h7PvS464NH5p0!FQ2^FmL#BS8y}a3ne+$RcwYS-_Jn!oHZLPt! zzMVz5!WSxUFJjd@e1v6z zJh{UhfJQ(otvOO%>X)l&lhWmZ=x@U)Z1!R6Ra?2-8&rNJffht*s_Tk8{jxYp(Hy`utJr=0Hn%3wr7hsBuNV!`GLoJm}>UK5a>5?=JEoz(KZ( zaJy`#@x zJHr>|1pw7IIrX2nvR!inb+i}91w@Na4N~sL%AmIv1H*vLka zT7;#Y7wk%3laJO8nRy0^tMRs~NX_1+CORJM+@h?w{;6G2D!27vG0WG=Eke)Wa;GBT zCpX!~KAk!S)xzB44xt%X*;b58nM>4$>mYOQKI$O5aRNTbe8lN|uwUZ}W1Tq&Idp)V9LmGR z;ab1H_t0>U$ct9v=*XV)H`lbWROM@GYmnj`f4EJ^Z60=bjF$OoLQ2GX+Hc;9d005S zHBG){xuU$3Pbf-T;PckaZ)sYC(cEGJG3KBxEN^Me&*R_=t7c9xc0lFxMT^gebvopm zLH}=@lyI*`<7s|RN}hb zN0Xt#k4roB!UA8tkJeeAXv5ur%0OEPVpy^eZ_Z7fB+6&_!@)q9GKxikCQM8c=&nK4 znqco0gUKsLW}qE+nZIFqC7Kp!p#Avrep-3B4=E4N39RZ<(U3l+6noM@XgXb?QynUC zCGW%8F}J!JErhrj`#_&44u^fsHBD>gVv9)s1-`fy=kl61AT$zC<&fO?wPIJ%3oUF} ziLFJwpW@Ou>_cYwYT6na$lhl=s3LuUQFfKT)$Cu6MVgjAuJK%N?Q*QqeVNKz`ea#} zFI48QtMi%cM&OyKKTdRf|D(6^23X!wk7bb8OK;N=y-W*!U%5sIwNMpf-yQBlWyf(~ zz9wSHgd4dlLV>!r+Sa~|27t?HT(~zZH$f$HDk&^&@J-eVY^tebA8Q$ z&>HOV!nomLRF7JQ6L3o_&bPi^>!G(xa_VrUM(xGmYgU;Bb);O&=J;DNL`$*P!F3cS zomr(^7zoBjB0SyS+UyO|!YG#^nrFBrC|4mv!CH#V)cpFsO@x8a(t<%}bdxZ3nb9b$ zLuxS;^8&4OY6yfdKTB8F`f$Y+Xc5Js1}uCnt+?WtU(eh7Lor&~54HALaP36nunPbC znHNm#WT~?9eubg5^}DXZRX=Ww3apUm?2zDr;KR8fFr5#wkjGjCaN98?n!KjFtOwl% z;lAQaM!t05m5NGk!pb1fzgXF^0FkoF+qW84c>ST?(-hVZqr1%K4$}gS^9Zip=pu<0 z8^akF1Pv_#bU!Yf)VW7Zk{q-I_hW*UzR*gX7!HBuwD*O2ak)Cly&l}L@1i?O>S~M6 z7rfP)PUkALs>K^xQxWnvFpzPqVP*pASHPOaQRI4)k zMp<9a;=gkn+l8=@yG;xoT65c=*EHg6dzhkgj1EMXYlDq?FbVgqf zm0)wwDoQX;d9cbcDtJW_0lt$;Ab(;qtuw2RVB+HkqSTYYla*-@g zvV3Jk4q$nblZDuL6{M>xPJcZ1PCrCC? zvgyq7W-yys$}As8hmKeQv*K~ga>q0COpr#&@^T9~be?46ndMGoHgmevN~BiGEU#c3 zWyl@R%rk*m@kGgrndOy8hGR^%&SzFUo!QJ%X~Z!mESFhsKC`?+sg0A^c&SNNJV6>K zN~2_Xk`+tl!4N^rV#z$yrKe<`5~)d+Cz)r4G)k5ynWvPEd5Yyuq?q`R;~ctxnWvCh zZi!?VZ*a+zEMGBkl8Y@N<{8f{PqN(U ztQAX^Tf$oI3}ywArP6<pG#lif;Oh|tMHexFEtml?PY@i*ZKmFW}m(Y*YElET6n6H5zmC<=4O<(7I% zXA~6A%o|@ier9e-!NlU3B3xaA%bKR@YJ9)bikou17lD)IzH#ab{Ofpc?FyVsXZn3j zbz*Y=_5Tn&TjG`KCOWAtfD5Z|^%>03L-_7EcU4SH?yn&%FDX@K8h|5vlAN-T=rl`ou<^E=B6;cB(uCW86JBrY7 zPdLn?yqjR!0rSR9?t<0To7y;6*Y$0aO-|GO4axyumNqo`TCsx-SBHCLH2(0>`o@>5q-|vP!Zls&P^g8sLfzTQ* zMQ(!YWXpQ@VMm%B{f2^Z?9BVugSSo?R0nOH&|9WmZB8wJhky$=Kd$b5YV)bSLo~LD z$YRW5>`VB_7;~AJ@*m@gZebC6KjTG9_?+Ee5 zOL2If{Mw`x7shasA3Q!1y?Ecv*-?P4AtxN?ZBJ-dbR{u&PuvGgL<$Izha`Jfd2rCM`GU|enN)5S397eU?a^cEWmcy zNYn5ujSbM=bCG7lGn+1GU74>8n}`<`+|N-C47*3Oi(iSy#0HTlzH{EAd7$A5GI)Lo zO^5ajW0@|(?hr3AmH{mb+N+G^LbHo|#Xi&^Q7nlf?LP4jVMP=VYHdepc*GRiXr1ys zEaEIwUL42#y+~!u0j)^~kVpmN5N{?Ps$8 zMn+rN{xaJ$*?uzHx3YZ;TYkgx?JVzM`9YTd#`4oF$8&_YSU#5JFIb+*^8H-@V>t4k zS^k` zU`q^_cpTG57)@eyGFzHhF69U(v8A5rCbs;Y>Dg?#k?9TW{}{`EVJbLg0o(t?bO>8^ zGVNx|UpY=LTfSjS70chV{r6nY``F@P%K^5W%N7S)#xq^V^i!rkvQIMCA&2Q*Y@fin zUSKqiEe|s-VV@@%tz=6xTY_x4kmbu*euL=+T+ip&^A<+0W&0?$?_l~mqt7rphAsCn z-N*L#*?tq}DrfsOYsj&&N!EVEZ(tHB8qty_;z?N2p+W3R|?H&sc_wy=gSB z_og*!`JyAUMavcS!$P1ArtVCVhk*9^JOs;chmyTyIMEFDd4&DnVfh8f7Ew6tIiS;r z?ScGEW+UjkiL`oLKb+`;SVM63h?>Eq{nuETuP04hA__C#$LhGBwJU`#zJXS@gz{Y`uFUjUTzIpz z)aDGG0&OE{$oKg0DVA9Aq0$=lld-mnrG#B3T87nIl0}iyt{Jx0k}9;50U_pX!#7yc zL_BHY5?A4X&6aeLDYcB3^(&xFVC}q&Ev|c@T_iQveeo~ioqd9S>fNHS$A&#%86@sv?Mf{Dk5~qa=cML(*!F^DsMx2pxen64gXThuh7H>fE#?%d zB@a7b877866XHtOC-59D3Y4}bj zEPW@JFiB}8T>8mMdxhJ#Mrjk+^J=AC%AWTtZ9ZeKD(z}6;VY%B=k^V#mgT+7`SO+a zA!7@a*2&lzO1q4)txB`=F}ho6A8=3nL1~*XvWAOKm3D=TwAf{`ybCyHw$i@mdY-7X zWn53c(jMjVE>PMij(MxnuH$@9DQyau@PX3q=MrpQfzOq$Te+UcD(zYB!Rbo#a7?e# zoLqW`(rTiq*4vc!SN42VX=}NJzbNfhF5w5IeaW7K`O)tyUC*<2g3|uRB`j6i3~s|} zrQOBYRZ9DaXU=^}TgN5*NogtEhQBK<$g?V?R&ky9fELYlz9OZnaoyD{NS4xZJ zy8K>gGk7g{Uum@q6`7j^pW0ZCh_gS&hzT%k6l;+_m?Ml0jYj&g3US`inl=c^% zw{Iy;=brywX@BH4462upe#h;rR$3XiVZG9tINuFQi)HO$rCHhYO{KlfF~3vVR_@P%jk5F! zd>keyZ9DhGVx^UFFRfHsGWWz4O8XN>xmRh&bBkV4S_ganO=%agmb5~aSH=C}QQAh1 zGGA#~thFd@Gq-)S(%#@Te#bh zX(PFw=PK<7&bPzRxMoi%Z3y@EyGrwNT`bMAymJ}TmG&(khiOW)vgheadx(2?ozgyJ z&+C=;2afWP(q?e2|E#oqobOwu-ODjET4d?ZaFp>%8_C)tsfiEczs6eLz}g1vrG9|c z!P;U(Jf;wz=)4=>Z)A~q;nbWYq!+8B`{ zHSFCMK^xqwou=i8V_DmX7VWT%71^xOUU8*1R@Aa~nTQ>}7IzA+>&4E--upJvEKiAf zwj3=_JgGFQXTEraJ)d$dcD*PH#p_ZNdz}|*g`(~Zs@Wyt)8UtC6UFONxSO>pqEu=5cGBiZ4Q;p;T2-%hmo~Lu8>Wd<8Ix_8CLZk7&en>=)1;|d7mIh5 zMzx+UEc_cSS?d|XB{i<~46&0nS?e=6 zfKi|E1p;}-Q74nY_tuwE*9Ugwn5BGEwwHYwW|m_Pi(X;u`Uy>tUU$K71kQz zS#9Jy-&!v|QCh0_!rCY*&LZqG5tV7T1;jGeC|`-KO?<=J1~GS7qwP%b)>;|GBF?g{ z6E*8(zORODw5=CSN*g|Wi>*W4Od75`KFGXG+bDj^*d^i({aV`vVxQ7JO}xprN&LW` z8^n~9yKNVXob?p*67gN;6_zdH1lHuJ+aeZ7jC*j4IGr^*emmfKMz6L~+ahl4)y~$o zilg{=cY5Jf}GtHflbU5zMLiw>o|iYV8JdssV1e643{*NR;VbH;sPyH@OB zjau}84H|DpAI>N+LJm$BF#B)fK zWB!+-PH8meZxydgjgQ#v;);#rN%OYVe!I9{YM7~OpzY|@I_!7!o2hs9EB#J!2YbqS zd#5D#f6h_&R~^Vt)c^ z5e11FuG@>#HCUcy%diZ3FTn>1WVt6*!yVR^BiOxczbcXZcY|8QH27=cD#Wz*TBM!m zKX98}6Swu&#HiJosbp^g#eaz6I7Br;HL;3;p!m;NX+$q%A2ZEm%Y3f$jfX@Yl|uCy zfm&Hb8hc*EaZY0@Wf@so4vj_@O;m$gMHta+q7gqnw}>Oz&GB#K68~=^-*$u&k7PI3 z(A+1oU2+UiTQszVT0|C`Scp>W;x!y`hd2$bbBb15VxmiQaeunGZ)M&-*($1Fw+TBR zog>+g=i|6>fE-=adldr`6YVPUOs)y}SOxjmFaoJ26{rKg@!--6IKt%|fof<&4f`UP z%U#I+Gr2x8vXqSoREqbI{=6Jz^|w>IPzzA2=rHxb2)10x7TFv1rsFHeK4U6J z@(PyCsM-E5T4xb*ocw!Z??@xTZ2!L-lks@-e7x9<r!K9N%S(8sM-Livbx?mI0zLeT1c4+>$r}^nB1EVqnTipb04pVfi&Iv0{tsJj+th z9hNAjUeG%&e(`DIOO`b(58%ifuxm`zHi+NbGPDcX^Ae`lh=z$8Y|r-i7d5#3-N&HmJu-&kWsLh7Ti#3w!j znOYGmVpCs+yaVT_H^jVzx2$i7P})1NRA+o_Ef50|$Jz=QE#No>>_3?;lYvgLO=kN$ zDE&@+N7R||fNhTWEcF#zm3S?Eq2*gaXFiLi9cRNR%NEzSw&9k$(2C{ z8Sq>9XJ`X0pWz&Ljo6uXwY?bV1D103ISF)+-3y971pUc=2Fq)hZeV&L(@U6M!}KPm zw}I}kXkwjZkyR59GW`JbIB}M?(~^UKg!QUDN378P?#L0f+TEb1XxD*OYWrZHtu;U{ z(dK|o(#A2>nc6_}*(c2OSgi~GgSA^hpBD+vVi6WQEncQih~Ged0-MmCmizzJY#Nd?c1x z0v4xsyq2%+(w@{l)pTpMwbgowb+B!*Eo|$wJz=Y~pKQOxeuEv~bYhL8RnUg}$G70E zp1;C3(YJ~iaU14XCuZO6cw^X|B2nChw^!YbbNj>r*Py5m)1L&rIfdwM+uuM>auDrd zdRZLF>jlvT7NRvVMC)RSeiTL2Vxjb+dpRcE|#xiIg0E2 z5tq1yTYZg-O1y}DA{?iV<2=s(ZuZ&6_G0#Yh&^xTI4^Qd3fL!xbJa&vv~IR^u;-uI z^J}*3VfqjDEaRB>u>2|a@CNow=a{YB+qW{kfGsnbW^>E{dk*0mdblkQaJj3Pj$=B3 z^9C8cg^yYy=Pl!7H=pzF<`ymFI(*AM1&nUv2(Pl`9X>82xQ4HD%s;VwDbs7%XDOGG z#rQfzjico*(DaggC`TGy43v`yh|E6O|T8t9aI5lHO!D?B~Z_pkxi}g%vAF z0@e}>)(fI|pE)c^Ob1|Xq4$r)fM(#IsA>2nECF;7a1H?Yda1C!U z9t=wV`AEb0KNIvAa1H-<=UC7Y_!l@D(s7`p@NZ!>NZFuS_)jVt^s%6BkqeqF@00#OQz=NCc8iE_~KVm9amF&A_qp6$`Z z33#)#hA5Swlf^>NDY&zsiK+M^QA5O2K#Rm_pv9sZbh_|@mWW!=8NvrzDjGm%3P0#9 zu>!PAG=r9l0O*P04A9v)Uuj~FXak)qR)NkFYe46Vvp_4bPog(mw}URgen~@Z&H=3w z=YlR2=YuX17lJOvJ0LZ&1p6!eFIKSy^kiIZYN+L9pr?u}Ku;4_fu1g|0jo!Nbe(t&biH^3v|YRj+9Cb|x&cqtXyR<~4(K`JJ_s zXNNTOrWN#ZJg=jnPo1DwiYU;lL=5QFcydQW|0aN5E0RF36DgqA;~5?eeVq<^Bc9;V z(Bp$aw~L{mH{rQ5P24PogZ@$+3%Wy$1ieKZ2l^{+cHGE(|WvZyzRHP7j19Z_7~9eb+!(=62z?zBrH}) z_h6mUScZxZ#wMs9^_bv(|#L#+-)DT7-e&2!dScmak z0q(~LZ51M}2|C_O0U2L~3~s_Kke)2IIRPe;gxj6lOsiVzgpK5iz3>p&7FSa?~iqW-BDB4Qz2#bFy;YDB`Q3 ziI|nh*MvAe_yoXP5re2mrMgqC@Yp13Ky6)(9;iK}uGAB4vIjaYD@KL}sLgPvPSKgy z!i55apw~gh!_1IcxbiwGMir;d>&rD4MX$z^)mI^-lfvk7ibR!?RW%SD9UK6HpOSG` zH(}c6po!E)%Q=r2+`r=&pcLv{s*gxLv}w|M@PURkh7PC9DdPHMAelN&HzRSfI01`0 zE$OFXkvtvC;#pX7aL4tHU(7w=x%ZrstAF{`INjUe6g*z|3 zxbygre@xo*(4CWRjsNM^M}B!sQ{(3G(Q{t0em$UUMa#p-EIs#E6J`x-`Ra@pF5Tgs zEFSpI_v(;8?0^1)FKa!|ZqF<}XW_QNpO1Lq`1GgVNO|v;;`|ea+TVEecA>efRw@=Btg)^{YoayQ8ExIJ5Z{gTtJ2ELs1%v)UA%B4AgQ2j+~WBPA;$u zizO+;LA5{ybsL9FbVcD!gcLjxjTA#UU={_;k^!?+z$^qCZF5=>&51s6*&IWM;??s* z?bIO6PW>gQoTQ~L8pZS(=!{RWmd3kWU`YdAuAx?_i6o-OT~6Ie4epG=+I|*b1 zP9hzOW<;iXCD>7tzyMCs?P}n2utapTmWsDZ4@~xO8GY6`r=7b8+0jW{533XZU6bYy z*93=AK<z&E~l%n-z_jqDqg(vFDCS#Nfu9 z!3T`9(V@1Zw?MR^c1NN`3>_w{(H46YmVx9p_@a)<4g4!q0mA*QhIPn;Gd_fL=Y?+fgF{iLF*HeI3V&a>W z{G8kz&lvoqXrMy=vU9j@6xI5R9!R-%LbN;j+=5U9p|flGk(IFQ{f9W`@{SSpd7>4XX}0c zz-Zm{HjdG{dPT#OJgRk$XS7~|pBm%!Qd3%dZS;Go(Ru}bW96@%?Zc1OSNK|{)Ygu# z$<42?udU0gtE(%_O|?{MiIpq-K}5pKD{8q%<$A`4SYSUZ#ALh+Z-p;3H7;7$Cws&4 z?HGDJel6dEgF5AyBMyRNI14hh;fovI(|vs8rH{*QB^@SyqjxzpiY-{ zmow1#S=TZ8*dzGitqOJWM{>sRfy}Q#rJscL<()j1+AF(jtkGXkCy(vzNY%SSl%4ZQ z*49XBTR|jJwy9&aoh(mgJ@JC^S-glm9;9OuNnOldJ&{yLVI(qV)9$iOf5?A1l6oK? z|4SuxI)mSoZQ4_|>D5T;$511wg)#>m%Qn3hNqw7*F6Fs-3ztXUcOt}tG_514(Lgs< zxX$@bB%F6H%B_F8DDhNr&UcoC^HxeVxki+2-qJyJ-LyB7dPZN~KR`6{miNzlg38-U zc`q>X7WU=6)RY%*LpGQD6Do#kB)3rBtw!E&^Lp#N$dnhqDKY1LT;;8&yjL4}AL+|G z$dvbr{&~++c|(+UyODQ8U*5MN%J!~2t+$_6E}*)eN_ln~dFJ-z>FmpMd|#enl;;@A z(`Dot2*<578cwf%;=qSxkqC_mHC~#5m2E0ZEIaqvw$!rCWr_JO7e5e*(DBpIp0Z8P zlx=#f|45P}iiVS3w&{z6`=2XLxF1LFO^$@&0r~!1%IZKq{d6@17cZ)$90~XTE#dxe zCw;v(E0X#xd%Zqm(^E6DpDvE<-t=18rspH6*K(jIDDx?(aU}H(_Un0Y40`dv7}OtS zU?4_PSIZ&~j8bhf#yWAX-?=ZZ&ED`GHK+a9(sOsOEiJ2kd~WSC<<`f_rqFdmd%=Y# zxn^8g94l)YNo`R@Vc3WRkI(8WDoz#k5NwguS;{Sw+^#dZ{gr_~9Jm}db8TLDLC!yP zSlOoU%Fd0n7CuNP%Sft?bL=hKJkJ$L4S1+TnqqS{4?Pk6KQRjP5!^U@k<_=?rRTxN zQN;tgspzmOdY~+N@uG#);aO#yzAfAIx3Y8p(VCb4=B5_cxu34r%W7XK+f?;xBBnUX z=|W)Z&t5ikdNLsVh8tZta`% zHlKP;;-l2*#hadc<*&t2`4|o}COy9PN#nqLFqVq$c@Y0rK^!>VRFAc?%MKhv^*9iv zYSX{JAM8NnNa}4A1O3cH)J6)9!%1bE=cDJRP?*j0&?OkY2XdgC^Ar>evTQEksj^Mt zoYgMN%JQ;vb`Lm5{~p5|y0&s6^o$Mo7nzaIsoS{ICaB6jM8jik>Hp#GP2ie3*1z$S zJzU2c_Xm2?BF z3u-ND-EK>Zwzn5*dy8Gw-Zt-d<|KHalHT|I|9_wV=l!GSoafBUcV?b>o_S_DGZRGS zP}q;D$NBbrxSeaCNAAu)M}3k(APXQ#B9II!(bIOt9g?4thCD}wvMa6<2b4x4Nnju+ zfz^%#ytz@+B&hz)A^KNZ7!pzM0p!SrA77)|2DhY;v0jff{ODE0qqM$M@lu-Iu06)6 zNXZSS(ISj#R!E$_R2QO8!Yv}vDAgKMQJ$yurL#g%qrGT2cq3fu$mS%ISc^hpHir`` zRxe!_nzX2SdZ})kJod~wzbPhP#23jrT;wHwGn{t|i3Il&+hRyy)V?rdd1W+DqSP ze`(_7d1>v939+XOKZ1#~+iwZ9)V9G!*%e!dvPIfViuCm4`!X9y%ldqKBizolA0T(~ z=QT*jFvWL^ymmHtz1?t}eUCb$i)zxwo_0F2S*Lf_{-u)ASKTjtl)Hvg?i!SP@QnNA zew1bkVf4nNkT??rfTtc$edFCh#Ww^3O7ZoJn(c~rhEN7Z+D(s1OFrEkPvi&#t%Jaf zJUsM9t(3ai6*(l@MIRe=&&i1kBnq)=kD<#CSw9L-`>EJ3ir&|oPC_85#0We1O)|+$ ziPD6T7fYJGo+h726TIH`(-!|$^rVN@-jraJ>x}**8;)zY9G{3t;1TWh%vr>$ZTwQK zwUPQ=d>76CM<5ct-q-Sq?=*Oo9>kkYa19^>sIJFv#6IR8(3Tdr{c5*Q_#V0QdS)vL zQCeK}ligl?XV4StK{J&0dSa#4M*1Dacll4`kjVLneA6Q&oxEe6Q6EOrPATZSfU=8*TUmBdS0aj1(e@7h02>AH@SCR$V;t_p~8`+>Y>WK7o zL=?1|^%VE0>G#EbI*N!8;zsouORAYlZSM9&cO2_3X665#4}6t+sodWW49^N^gwH=O#mcpU{k3UpUWY^IKp zl5{3cop^tCV!Ao8_08*OQ>Yyh@H%>7%S}QQH^nvHbaQWV)JIceC=qnyUAeuv@rHOy zGjk2PW;(5Hyz8cQZ(eG2qi|2=Gj#Q|MpklcfjaB=lR~ez8;@_fYsb9TlL4m2#&)r1 z1B8r9UwmWImSzL!#v4+18U|@SIh=&?@N8qlm@YJaBQCx+O%irQL-YGHr0lBgopKrtQ>#wjrKMDH{Xy`%Pc19%Hy|1%B>`VH?MG%f%@q;rf59|*+ z@PRB|Mex4pPpfQ1Z0J(cC`kGA(xrCbTf;~QeS{N_-zI^*K^AaF|L`yIl`LN4#A|E@ zik}X{gm(Nd@tG`stP?-hmI|cy*qappJ@tjG|6Bx4{#ksS6CYLL;_*7dC#S`NI{{Ir6$>QfY@pEish7$6_9ePK7UGmT3 zvz+)W8-rn(_SkUT?TR=565kp^`CsP5FSBVV{&|XD^OyKa7N6t9=h(}!9VqN$v+LTjVL{dVxYd1(l+uE#w2NV9cZR6kx zZA+#2B8ty;fv;roW)7avHUq_fK=F|-@R=6mO^a4jQHx{#kqj2Ty1l`F(3xG2Fqw3w&!3<^MDXPiUKg;_Vcl?E+uP;#)X) zLfgoBFi0PFyCTvBK9j{?h{@R=}AzI71gAKwPL@PxJ*DBe!-*)H&vEFK?Ty6}XyVZ8!LA9wKY0-wp^ z@f&1actYC@6mO^a4jQHx{#m?=gD12NYqOBP9e42W0^h2n{6}!`gtlP?81S#)ZdYWx zz*n+(4F^wXTNTCIDL&E#K9j|d<=_cz!>Tfpf81gJXqaC3XYp|yJfUq^DMHG>Kjq&A zzBQ2Yujk+iZ8HD~{wY4&1-_ESr*iOwwpCHQo#G>1;4@kL91fn)Hk?yL@{jER;Gc%+ zg?|>G#laKWW&jfTr}$bI_|^c*|1u7q(6%ayw^Mw!3w$Mu&*9(+Z6jx7X^#!U9s2JA zpUL9abMS<=sVIID#dpv!z3|WC4IDh7ZE+MopW;9Cb${u!<%BHUsBUEo_W$3)tH4xZ391I2$p@!2l$l`OuK zgD14Df#U5HAL#<0$>Q&D@PxLJ-)n{b;ST+$VS3@8#gi}lUF|<;TPnpDQGBfneCq(p zzm$U~w9P>A&r^K13w$Mu#}>w}^a*VM!EctYD6DE?!L@1S9N;h)8; zICw(aS}5L5@wG1Stv;0h2o9dmHmukt`hz?4-vz#s#cMctLfZ@!{{h8Ey1-|$_^}*3 zp=}KmZ>RVU8m1TiS$rG^PiPyKdLjRI+@b$2@U05Uzn+69v<++32_ARw?*d=R;!`!LPv`?Vk&LCX1iL!4uk+L-DUrdP^@@PxLdQvCB2-$BFl!as{QaPWk- znJL~*@wG1St^Fzg+cM zH^ulJci2A~rWgKMd=&>zXj>e`&!_lW7x>nGl>Y-9JfUq_6mO^aY!~=S7Jra~C$tUA zZIS;X+`+#Kd?t%O#=#TXW}x_2D87S+>4kq5-@w5W+EzvJc8afcfp6_g`9ICU6WWIT zC`5j^L;f!Cl`Ou6gD12NJ6VAL0C({30-wp^uW|5%wlz@v_Y~hj!}P*Gi*MuL32p17 zcss?{y1=)}DgW&pJfUsagG2bo9sIk%SF-p{4xZ39?A{^r#~u8;z-O}fI~+WrZ3c?B zQ+x*v(+mGBo=naza!;T|@#~u8;z*n+(IR{T@ z8}=#zKOcAS?*gC6;(a-ILff(^zKG&GXqaC3XYncyp3pV}#oH;q)&;(`59L3CgD12N zyR4A^;kbi;7x+pRui@YcZPQSE5yeNkz-O}fu^c?1Z3c?}g5o=9m|pm2@o^kHp>1sx zZ>RWL7x-3B%DD_MLh2Ty35f#U5HAL#<0$>Qg5@PxKuvjWop z0(aPd8m1TiS$q};PiR{w#oH;q)&;)RgYv(OgD12Nd+Lz>B;3Kj3w$Mu&*9(+ZHuG$ zS13Nx1wNC-ujk+iZL6YqJH>a5a=Nc0zX)PEQFR(Hz(HV&T9HVwr; zPx09<@Rcmy%)t}dW~TU8C_d5!K9j}2z`+yRRz>k2P<#gs(+mGBzKVk$s!lz$qg7yem%8wXEln;A&$v5zUf)&;&*O8IZ+;0bMOp?EvR zXS={xviMF8p3pXCFG+vWKFYrfd?t&(!@(2U76&BeFDbr*hUtZW7EeB!I@@nT+o~wu zPVu!a@U0TcKQ`@j;R$WSPE4df2zS^&7x+pRPxcNu(Z10p3t^9iZ7!0Y!~=S7O&yp32ie_ z{1+4-=>nh0;>U9EgtoO&yq)4ZXqaC3XYp|yJfUsaJxj_Dci4Xy_*N0+U(dl4+NPoS z`4pe+0$<7EQ#p7-+p;LWh~gt%;4@kL91fn)HUq_fLGc|lOfUSi_$&^d(6%;;w^Mwr z3w*1P^1qCOC$tUwj!}N|afkl9z*n;P91fn)wk(P-qWDM`_)HeRo`WZ}%|P*AP<#gs z(+mGB-oU{V+SW$#c8afcfo~O1{}9+kdD0yTDhn_!bVH&^G1|lD-%2=>NFDXR`Qf96X_Ia*7{B@f|cw zFZ{FkHV&T9HWkGWr}$bI_*RDU-_F4k+NPoS=@g&s0$<7EJ2`kl+fpfh4aG;gz-O}f zI~+WrZ8;Qgr}z#UrWgKMJX!SQY<~%D!&wd}|L<{!{9WK%?SGK(A5spU(6&yBXE&x~ z_lkGysW^y8dMpoQ_k)oA37&R^ufv}%{5H`P9c$@7rc3VHhkez0{_Y@yYVSKj;B? zt*PPHmLNwQ4>{tXc(P{#YbwcJt)F`E*h~C=h~I?lnNDB&1}os%rJ-!@$W(KW^^c~e z#ycW*Z$_+Ey3SX>sKKP$BFCPL_5qvKXKeN+c2B~w9@i~bQr!5E*U`q~rCN>GQ7pW7{5ky#Mex5R zC~kyrW0$XE{W_NNnoc)%2#fE!<;oCF=XJFCmQ+`osKMrx=A}BLTXCCL@g28ZX>kJ* zX}KjXO+`Exu{K!FiK~lWyJFSvL|+YZqOU~e&g|UZ?_*cYpkcZ;)W!cnAg4%h&I(lL zdTY~dyF$eRu#f6LBmBd^&29<{+N;M{+K|LoO6H7Y2t?$yP^-x1)=gl(K-j7?20io z4)>T$rC5_ z#W&gKmYYTJb~ycJB%y!BdtX+4?3m=_CUC!eu>s4j$RsQ{N*4PW#cZ}{$y!0v(qcD0 zI3l6?{c97-)}H4^>pD$`Y(;ThYs$%DY&K6TIC-M+{r6j0B6?Pv2XAG8(GjzW(E4!9 z4du`3q=SDf+=uqVuGE4EHECLYUI{){eebfzY(Iv+%goL1^pJOH5_wm=I@ zLW}`r3oEh%OYBABkr$2qZ}nMf^f@IUR*>%W=y(%U@jZ2Z2=>d}Bc;8~m(&u|6`ko+ z64{xM2pM?2-O}+i4H%XmWLGHJfU52RRcydpS;hCplTdf=(&!?(hq?zWqPsP&_})Yk z>LMG8te@p1`iUcyx9JSW^(5=+^>&l9LfI9$6yI52gzUAyP3KHm9hT8do^O8>Zs*!} zlDoscU}p@L?Au{Qg(#X|w59Pvt&s=wwpl!~0o3uOr}$wo6is{(!A@d5lenl!U+Nui zYGln1Y*+)aVGWw4MtM>-<3S80DDbfiRYQl#Ve7MFfxly$Z_XW3PMuh{ z3s&xL^X0)A`+TTpmsJuXh+VOdMX-Ai?TTI0(dY?Kg_=&C5%^wGR8Ieo~h2m3>VmuTge|mVKQ=UIXlkX!bRWyrPpH%)TzeE5}ePP+E@ml zS8UV720gpt7$PB?GSPQT!Zx@F?Az9v(EB+6_pJ?iw_{|3k!(?-G#e{LOb3GHp89ZeO!Y-ud`G^1K6e} zpAy(On_fcu?cWRz{6 z91YXe+f*!e#casue#5j3&UQr;_3SdYD}Er3fw;raI2)#6z}XcHb-aUyh}v(`FbxIR zasI@1kbiN81U-L(C@bCeeY>*@o5I2Na)tywe}ZT>#U8nj?Z?4hKrt-6f9?gkkN3}? zAk~0k3+`jDfOO`$mop@mVpHYwq|Q+6g!|YRyRd&cLxP?=K`Iu-$nIm7-pBMjLxP?= z!PY)Bq^dxTEcKBAqiokgn6mTwK)HX#C+96f|a!~qhS za2!eCwe=*iOU8WEoX_21r{0rJ0-T+yYGh%iwb>PrnE@P8IxTiZ( zykEu_Fn8LsjN6;wh;u4vz|Q(h$W!~%bdHs^wb!Y~`Sv0j>@~>joL#YpJlZqh#A*^% zpLC)?w4Ga@L{7^1L2J5`Xu7U5y&KYoSd&bzhqU9V$FmbpooP?V9r}I}<)njZC6s)% zS&Q+7_Cj0oqJ{+1IqiiT$%~rF02+I+bEx`9BV`?L38RhrPvW9;dQ%?UOFdG^rbc35 z5Ddg$}0x5KnBjKKdPvr{75(vW8nK3v0PGn!?#*8FXH6>q5rsw($`au!td^ zPg*9@l4X&0D;51MM1(Uc@G^(!3v};1c82Td`5-?)d?eG~;E7gkEiH#U0g45U*&Lib zpf4Sj5>*&7hrIHV8MeH1$icG0aVR;jl7~=A+S2Jba{vc52&dt6hLK;5Y*-2|Mv-yg z?Qba;4?DTgGp0+o7E(!cJOevVMyomcsL%D-yx!P8NiR6Azi>wjX*-+D^`t9+8lOq( z{Bg*doJOJBruI5IFJ#nGg|eWkfN!@@NNi0sv$d;Meg-pZ#S1T<_#ytC5o!c zX?DAnB-w(*irqGp${Yjo=Y%B};@+HFcQ& z7GfscmDs(uijgJSy9@!LGd(OdeMIJ*7!;cx1`O8sW6bUnbKU5XwCF@i>3A(sbkp%f zdUDMHgd_Q=!c#|#)qm{yi%P!B9~?7Znjgxx;mC2VBUm+_B)b}i7>N)^+Hr=33MUH< zKyZXDafIE3XJYXwK2E6kt+1^p=sQyXgYKiIJ5UchQ75#q-xhwMGo4L{I)@yiW0`C^ zg?+)dSc6CUYu)oT$k( z3*0!3=Kq#Ff}HZ0)J+~aBnPZK(8gf$jL8>{Y`*17&XAz5UQdr9Nb*WX1`iO`?}&nk z>SsJ%h^h|?hy)Yk`B$R)ha<|1c>edI+T%d|&57zoR9jJ;q-}bTs2cvo5tWcmv$CRk zq@5Mj@0g^tD|S1AQBk$h8B8{q#u4la+|ISXNA6vJZ2yKfP^5=Ln<4aYH1t@HO%e6j z*>nFu9nqDqiDVL_dee2ZVyIxrrrSxT_f%ATOQkx~8Yxk<pUy<{iNkqxvD2kq&lMtL9o4ucA$)SlMX#-g$qOKkkO??{=DE}0h6K=; zrmsgmbTCUhOpg-@mnN_O(QAzaXBs8oFqL$S*XB^clUlDcm5`Fb{5{P#dYTxyIh@8J z6zxvXcakcJilmfi!iSgO2gmIV=dBH1TSwEJCa4ljagaWV80SgRL`b^qS0cOO7Ziwt zmyYL<5l7~4RX7}x-&77yrbfHsI4Q%@WY}JK8T*>j=ioFA>QGuyMT(-dgy@7_VL@uf z5~3EEgG`6qOb-7*74k^L=1cRMuVFbBP+aW8(8|+Z&+i0|D$%otez)6cLF1zz(?N>M zk-1wPPNGd~Z>Ehf!flqaiQZbpK08hUF|y$ljU9#JM0112JA(cV-ZUOZ#N04SN3(qQPxO=B-D}zNI#n`sh-lGOO>#j^w)ev^s<}u$0O8z={xen)~`$?YH}28o~rl` zKYy^{y$H%0ThZ8@<`3@3hNDBIj@L_5ZXD0s!Z8L`HqSiYtf`D4vVEP)=EyHPBpOWq#y6%C`qD+Zgx8g}!AQ~ae59{mi@a>0Z$A?fEQv%{@VVf@9wglg$#&mD3=_9*h>=zX8c`{)v zb234N!y7N(8Ui0EfD~PdRld4yg8^OTjWOqPzA0UrRGKh02~#0M`=L@`*Cp^sOmfb4!V?eL9N%ESOm52(|*x#Nrc(KA?1}-IyFu zapB&>HmeYmI*PV zX#BXW4TFV1Jh~1OdXWw`b>kF_)qzbslrf?7W*PMQXY}@;lOl z`V`#9u11f~4MnUs_0cc746%*s3$-eGabWWX|O-MSwWWK$X%#h_LBY8|yZ3`*FBKCu z!RYs?lIFqzI9{@-9}c!1t&2i;xv6j{@=g~r)%}C$O=tagz_g3O0%p5Vwpf3HvIo&_ z$F!bZVR8f`U+UYxfRi)WU`McPa3k~e&huk2GQc;G&RYZNV4PIFI}j6*dMBQG48~1A zm(I4EzA5>o=rd%7{ba=bzLz3};k_4IAYGTFUxY(`=V4q?@@f7ka^NqqoZB4n8SsP_ z;akucn#mVfErP;cO(Ne_^w&vlyG}4{A4qe`N{W^b?23asGGcD$akx9|;O-uocf=q2 zy{~J%Oeu-l`MtIM8Y^2AYnK|JJ&s`O5vaCed^zdC@geFXqa%rXL&sz@flj4uai-#aTB^zvvfzY2G3E2c!aM zO=mCtOEwWl0^{t~q7R9RQARFYB}LI$|2bhq!C_<>SM<;BX#|C(gZ$ zZOqrij7cheOiI3`kuzwMO#`*Dlcnptv0x*)bY8KXR^v-;TAARMsC@zQ_O`S|$e@EocI3h2ik(2Vwyszo3$`gHu&NNCP66cyj0}^rCye|Jg>&IWNXwxBmlf z=h_>|z1tsKf3ZH`5$^fc$lPC@Z$16b=Ubc3|9U|i(k=k%FM| zjv+@c!(e&A)2RrKQgX@<%NLC_&O4_bmLoy5IEg4)k1 zxQG>^^_LqteC-X!cxU{DRgSdV$rL4fKCMaX?aVUe59jPs-eFwOF2^{E_;C{6$-iAO z7eP$3y~(-1R54ioyUMqCv;2>IZ_{QB!#h#Xv8VDet};%M-->`-XzX|J{xC}M0=!AN zn`UF4h#Yb*zeo!HSN0%R?&4FYeDV7Y!1RzTn?9BQ|I_u4m@Z^vbF7y;_SfrMhNJAe z7AW?*zGVbL!O)V$$~_k-{%@~u+5R)izvucEb)FkpnY?1z%SHC}1@eln&T;m&io9ak%VGBQ0A6XYm|ZHV zgyec%_QHeIxt{ngNF#A9UHpyCKC;b33eETV_MhN(uKiPTcl`Y~>s?L*jc*BmTJN$A zx%)5HyDVUX{co&y8Q#VA|8?tKXnnCODn2HfVK_#_Neq*-xV!pCu$Kii%pE#o2J;wC zWz@qwB0T;54D?&j4`u=Ahn^>~U&A1h8rC@Kj_FLYKAfrmiA9BxS% zvgU9C&9dj)lxN<^i#kl3lRX6S`bB5Fjwb0na60+@gZ-0D7`D&Ah?LAmV@34z(j@G> zpv#T5mu}*>BS^a{vo~Q}RP;W~F~*54Th5TZBUr>w)--o*Z_ttb4fuV4hLlobGw26) z(;4lh8(PzaUoUEd*~M!5B+|Ejxy+2-?$A4 zJ3A7eQV)FpB$;Vn=FF0#eCTpUj4-jbf_`xR3WDu2_sFwjb$yTZ=wA~Zd$74zmwZas zqYq%$qmv&gVArG5<&3n9(JSyWoq=735U^m}bf)``kVdj2L`!yrG!)jjN8c(dSwKzUto1MVGy+XCfX0Z&L`7xon@{e(e6#4a2m zRK^IkLK?ephESOyTmbiM;aZ`xK)8hjHww#y%H6_hIM)gf36=H2MjE_XctNPVF1!Kv z4&iN~@~)64BC(75ij;n$AQ560jSwkgL|PGzT{J_a%n&Vrd$wq;NLe7-LV_DbWg_Kn zQ8k=vMTbPndQqe3bGSE)E{K%ZMK|EyA-XLZ_OttF#?wQ(8VQK|io+gjl=z9qC}$52 z5-TIcBg8{VDaVMlVr8OuhIr|iBOX}7c)~*@W0cwAe|m)Sm?x$v3&bK%5u-GU%fu6v zyT!?#`;@ifC7!~*JRal8e{PtvUd)Us@vPu66`mqLW}@Er{;<+M_56xH=?doW zv%}u#BR|roLd^{Os85O8!18FxB1UaQ8r87@Dd4!z31g8oDwRW7&b9R*dbBgmi+FODICiG`|M$! z@-4zZd6{rns63PzEw2D4${=Z^R5?N#Bi*@lOo_Zg!c@rjGK_MDG($QuEMtF6pb2_hW`_>f2Y; zD4jj5vTvgJjlLP;ocH>ICqDV|<@gf{{35*;j-8U6H8cLn*#=!{{41lZy7x54hxLmd z8<0BW(J^Z^+Xh>G_qYkA9&&Hr098oD5Y4Euz-r13(HAeEEfeYKHqewjZa3tOVN@$w7_!YG~K=_?PH zUzoxibeHp1um0t7-PL=xHp$ef3m2Jgjh!$c@STrHJJPcZ4BP9>3+^rYP&j(RPTp)4 zj~nl(6Nd`3-dmjKt8w70_w&MIGPd55_xY`%y2V(mZf=qmyX7Cy`SK=LzrXp&HN~wz zwszdIE^NHH;mKFO`}>n=9v&DbapUGOQ-o1^!PB!J7BY*5yueF&@9^Pyvu-yop1pJE zo458YsYj0pC#_Q1b&`BL=r}Mz%iD6lyuUIv25nqiIW{=n&#kZce%J;a6+_d^W#y%r za`fA+8GX-?MI$|B)}RYmaA=s|Pwt(yH_X?!+#G!6pOUUTbP~KHKUw(D>ZHj5=}ww_ z#G+}Zv1uO+sWZNgpWNk^0i#~&OVr(oF%z1rv+-`yp7L5e`TQfVPewjD;dGPT+_>+1 zCU1A=zAp~)>XvS2@r{eNL1Fx5lSD;-QCok2>~KalyfL6N}@9Im_8m zCv(&nHMCClsOxdt>dc8Rx~;p^e~5TqYWH$Z4W0R?_;VJeU3*#E#_Lu_ArJT9akwyQ zl%OPjimTl9 zciq&(-svS1cJZ$85#)ikMKvaFm)q45EB@IYIez!01GC=9I=lG5;5Z)5fA0Od7Pmd- z?ug?7JIVS2XMW=zkgj|}gCyv<(P#WtU42^k?03qSjGQ!S7tgGlnrH!(@$-?T`w05} z;HHsfNpmC(qBcP%4{{;))3~jY{|U3WYR1#i9@@PJ-u&ducQHTz5tSP6mArWE$$;VK zn3^nif8jO;6~+(0xGlfwp>a=j%aY|t8^kTbHhw1?Pg^c?Sv-EMX!eUmIk_8OeQtcG zo&5SmHyLKB2Qhwqq)eYQpt37(4QB` zAm3STIkE;xOE>-v2gRwp_^dh8#8*nTjxsm+_q!HB6x3B|m+qxjXdDHCdy7JU+1G zeH2sr&{JC`i;G0pULKWl?QimV#|LgHQY)f{U0qu|>+imqU+_Mcb_T1NRUv<@t9t&I zet(FwR^}wF({1E^{MA6A=*D|}r$6@2?bdsJ{2%>zXyY4a`mYh@l+JuDJNL!W@7?em z!%XV`lJTPtmu3k%pV6)V)+~KKu-}bClhxzJ1DR{ruV05bVCB1z)d5xTYY|h38_|=d z2bXu<$ha?SJgT3Jcxdg8{7qkNIeKE%Q2U#(nF_bj3IWxwZc?H;YPiOqn6qWmPdO>t zaAUgf3jQAv`zlS_w}12660@EBR1ebhkT4!kNi~vGah53OzFzVSRXpjVUq_|N1)h_O zTOwXpM_7hD`;<7PM8jX`@hk6>d!OzcT6FQXQ{&!RU76Q<=*;}X##uS_zqrl5T6pz` zq`2a?+;4;N3C>yncsN-)Y81c5GDFTwQQUWDi0$C?S2~{_+*~+i>D!+v#UmfozhFZC z<@=!iO!?FGqBs8)eVV8gH@=pqX8e6^VE1+;XRDBgWfv&a0}57 zNoD0*w#Ceo#*H=3%^90Ks&YXv<6GnPEEAcM`|iD8cGL%+&3|a~Cks~GdGDoT12->t zw(}k01D4ROP;XeU4U19;tcl(D5Yy^;PN_*ULQyPyJKd%rhYV z7li?F?+Ui@te5*{qA&d+qi1~Hd-2^D*KPeEXyTmuz4;L4in+tRNcr^0AM?ypi&KWa ztl2PBoJy8YlDfo*P+&aV_-M-Am@4{%@qC_$w}ppp5Km;_MHqOc-aJgMG9ouOH?iAb zjDg$`0v~)3!~lZCBNFlOw?(KB0b47Q;f_BMb8rric?;Luxax7ei>nFOX?ikD1oRu_ZMYNAZ@l*w z&%i)Ia6fPF0p9%s;MFIf-w1^~Fi0}A-t#uRe_jia>?Z+wh}e&;Y}Y0fsLI z7{2y4bovJQs=W=je1n7gY5L1U`^&@n%ftK2Bl^oDy@iS>-y!|wLkAez`^$&*myhT# zAL(tlJ;3m7K)pO117G6NVv5N5l{S3Pm69c5) zTim_3^z+`*Ke(SRpr6iri~qoWE;V#}8kHPT#GbULQWaBV_uEK`FMdly8C=i;BM#JscqbyF%Pm z%s!qVD8MaRC6bBwGO^4YCzmZUn-6NUJVl=~1u{v{Ll&$0(ML5ZS@=eOM(~I#N4R#f zoLMnAL!RarpJ8cGoe1%t9&HRRkL0WNg>KwvZVTEti4mu(QpK`V;fx`ow0XiA^Te`M zd}ds>Ol~O;+8gdZ#Ckc1v6w?PE@y;^B7UN<>~KO>qK8PrZ19hfTgIgMtB2&yt*Z-b zQh%aiEDP%PGoow}KU;X{@Ip=YD$&j>Q*z#rC5tx+m?(GTBsgYc^y+x^hrubsqF1L4 z=c|?i;ir}$7s44bQQBZ(^{?pIZ7}AjHW;%QCMp}LjH)vSO&f2y95!x}b%%_v+J)?x zgZR!2rROB32*sNjnLrpc&z(_)@p%byW_eeMklLPgCU^|%dQn^*Ms~zf_6NXdpC6d zoSSd?S>D=^c2<3)F#glvw>IV83O`z8IT2|&?w)oo_=IQtXCcS?g|eRQSz zihr8w!no)+!md1;rW)+zWqG6|GR9pji-{FAWy#Dt+_K57HrH(NDw3INHkb3NGLt2d z?^IVXF`rKHW6pk7@DIz6JfgacXtCerG5_TVSE1Sw%=F8!RE1`EST2N!`VF&msxypX*|nj5&FV;1 z*(yuLB+I@St2N3}U1(+aq6B%muxwv~eAswlSzsm-q{<;A%F!waqz zJq7%-e+6gJI=we&>IS~*F=jL}9IYbi`Zy|jG-@WF67czc!m`H6S)aeWSy>|QvJtT=A0OW^AEnACBn-3M!!$ml#ysIOp7lp8D~Lat z9#@C>L<|n|(M0=<8H?Arc%LcyFrSoEpINhsch*9mrOU#6R_FNSJ%QKF2A{1@hxt7F zoR6iPc)wibvu9tJ&+C8psXL6x$_X^&iQ{^WFA33MWZwu}Ulp>)gnfneB zMhcaqg%dExoh(cjDi;W|>D>1gp;4%;5LUwd4dD@?vQgMfg0~9)DOBDT-i0%r1`ia4 z(z)*mq6Cq0hA6{1_q|C}Lgv27w72pN(GfVG5Pd|ZyNR(!M?&SpJzc2#UvuxLREE;n9nEb&l@Ttbm~awF(RuaM!e6GA=5OElxaF8A zEZ(q8iRb4VqseW_F{Rf?p{quGgF^1cjtTX!zAn#Vn; zM_|-ujZtPuZi|&$2K`f%nLygx?qtkbt5tr5P3HBvyTb}n2c;o_4UP^7y^k;WD#%InO*ZgcBC3@V(sa1fffN%3o-vPRWl zRZLZ?sw&IOxFMN1xf}XHoilUXio`YMjgp;faN>;9$JUw0#n-FGT@T*1Doy3ak;W2H+7x+3j=6e<$a*NxTzyC< z&x{dS{BX^S5nZfUFD#ob!!t_ahac(6cyRYLg?3L#-*l*Yf{fX{BVvX8<_Jr5(4OF$ zFu#DhtKnY<3!45J>TV29+#Ot7G4AHh2^MpTbx(w4Po#D4)OcIa#BYN347b)TTlkWi zX$nmX+vsLCZ_529G@M`1rj@tNP$}04cSX(SoSS94>=RG@?P-% zqG(fS%u8X1r{=yB`qp?$U9#oSFw2qo*08#&O?B0foWDBo_27Z;h7LRzF0wWTHl5sD zcfl9VZ>X=v#($*Z^HVx?^3GYRPV_IPOZ+;^p*fx9Bg#EG%cINtbe50YBke37wa0CG zf#{d7mgY>a-zi8ulj~+am^iUO^J4jG(Z0mH3v*uY+#$JCP%fz%^0)o`#Mi4Ph)%lw z2$ag&*M-8()z3lxdHcG4t-d_68Qwb^YKF9SEG;1@kV+maA)r*B!rN0L18_K8`Tc=nSi=C_lSqLYb7<6^<;-`K9HyxwEO@|KLq)7Hoquk5~H+R#s zJhx}%yi^BnUOQ+J9gSQmdOH%_{B{)FJo`4dDFQdYT?IG4T?IEq;HHpp!`%B&W)ue1 zRtI|wta~e5hF-a~B{X1=W!D_buv*o)`k<-mis9C3KkJ@s>;5R~{vpo+Uru{8!$bZzx`}L3=!z^m+jy3A-LCe+SUJCP9yPZ>= zDzuy`vR;j`UL9w>w8DBRuK_T=MZM<`(ew^hYk97=wr`^Z+J5(<^%PFFVq{q z4{|Tu^^1CC${AZr)oc<2F>9t<<``}xjJk-rx_U+C@ z+}}56<8Hr<@#*fek0)z7++W>;AZK@xDr&3F?wmT;Z1y`7E81sl zNJ4733u|yg3RQR{&isfxGG@L(9)2@-yX~%icb$1(;j8l_&3g)M(in4v-g4wkZm3M~+z* zQ(xvkUVd?uwL)FHFKAELk)XX93s)>0qE^dRTD}a*7+zO4 zHq96owL3hqR=j&>z{RqZo96iow+F>+58t1W_Nsc{a!YlrrDmR0{X@;9rX$(bgBY3> zsw+0-z7#aLMJI2WrD}l{PnP)oV-ZSv*{VqMiI~7h^WF*XR){+b%EbqhKZT?|Sd`5q z|M7(R%1?Unu5G)_{ETGdM&Z5*=XWv%$;L^dnhAgG;w3UGJqzS@JA)$&>Y9R@JA=!8 zQgY{_}u)|&CF5=+alq!14kyxlgzUC`K2YIdl1&7+N;i=o==N76$oHm_K68eC{TEr)_JI`9|q{l&5>t=xZuX#b%lS*!d+`x~cdn5q8g;7404LMp=D-7QDL3JRlD zGPNiYlLErBcu~{gEKOvQQ2aGJwN|%F>4Jp+l^J{$9goZW>Z;JQq@#!_ zS#P+1Bv{pL%B$&WSdS?$%rFhZK)_FiG0w$`@UB7FEY$>b>&9isEhEzWqYEuT@pEr} z7<@eZGA5cx$0mp`!d$(d@X!xgW^&nS|T^{D^7BlHi zeH4>+>c~h)otTDY0|e0htGx zpN$-3`61jAYbhIRF~{88u|ZuQT#=-{u9|)~*iw|XJ%q_6qjOC6vQx<)&d5nLCS-MV zu2XfGBg9oH_+9GIiJ1Lqo{&C!sEnDvTM~7Dh^$u03gahO+SDn-EM+liyTi+;#@B|I zPm8V(FHefT9H0d&tzcOWlfj6C#?Vn})k#cgFgf@Ju$_Duz~63sti$pu z=0!Zocd3*328>U2%qcv{cf54`ggQ^*(e-7D%?K>Z-ki~- zmo)k}Mm26|T!B22zjv=aa+C;_$dlxK+d3Yz?NJb2e#xoCkH~OO9*@~GkM$$|Lq!L*5oc(kdrfV*ofi1i(&D~mE5@gucM)epCQvZRqLw^ zRokk}RWDRkRUN20Saqzbq3U#1OVzciwyO53&Z;|ASX^8!ulB80RYz27s>fExRqLx$ ztLIc_RWGZ~sa{`gsNPm>u707qs`^0n!Rlkx4b`WsTdJ>Bw^g@ScUIr2W~@@H-0Evp zStG0(>sV`?Rc}qT&aq}$msxYH>#YXsHmlkCg0;$ezm>32 zNru-4BUvm6*E|)x6w~%k>!1GBlPBR2oM!TQyb)d+Pq8fPX+3X=0AIdDjAowL zElSK2@}7E#&l6UqXp%GoI4)iq8H|1vhB*dCGolApsIq-rwe^bM$M3hV`Sjg)C+&Oq z`?b%!KJ@+6gpPkqPT2d~rnjn|^4y|%N@UkOCHPmBfY0Oe`=dSN&3L)=`M9+;eYB*M zcr!?}j?D7hk)_Qe+%+<>AYCZ#&rhE@qQ9mud6D*adt|}7WiXj}YgUhtYx)pJNq*^6@5tXs1*Pc?Z>ZqAzA1$o&(L}^v}VKzjdFnJh#1XiO?32#kq?a;Gk1Vzw1)Gl$@?G4pCkW*Uh=Pbil^ol z6l5oOisuDc^W6AP@vwDb?#ZXK9}XO)yq$i0Y5p$@XZgAQvL1Gk75rUc>AjW$}Bmx2| zO**Jl5d{Kru~J1)K%{s<5TzQ!j1Ef*<51if69CT zXjFvivw?;J^oNbOoFHfUAf?Y#zHD^kN5i}g~HmJSFAkaFL#X(^1SyR?_9i>H^b zG{(nG8k~=Yr#)!Hp!t%l*M{^Z3CK$V3R2*C0KId~P$>K)U;-HJlmW6xt$#WIcv-&x zWC$#zh<-Iav4hJz~DX#T?i4iz2~H`cB5!^ zQY z=Zt>s9kzV(D2mgm$8F_Bv;v_`WD2=RR|Ihf)3Sx^YUOypV+md_rGwSEIqF)0suPEc4w#k zr5{i?j5YMAv472wkz{WkP-sYuzFNF0nX7$7^rqkKu_ctwm_p8%K^E#S>1KjNs3L`w z$pdQJ(B9VWM3Fv&*~Gk$QmDC^HrLfD{=jhx^#sZr1L#BbJX4B<@rr^a*2)u{a&e=d z_R7^Hb*$12rZ8@NVlN8_3Hcm87Ww6sFGIi8>5`yZYnmlxSA#8j!Yg{OK7GIFA?Fmr z;k2GJ+IK8!0sCaP^0PMySDKW_B&$%@KOJf&FCkP+_c|ZXPpcDZ`5(vm`7ZCud z__u=;f$WcPKt_TCa4#gu=kCm}`!H}xmGpYtCNSvBK3ceE!FNNQQ_OYJ%JB9B3Iz_h z&ZDq~y$9aOyEZZP(#$J7Nv9}#uGkIThfseNO&er?F*M0m(2aOqCu`FAOxIwh$z5uR z24Y{4cxf;d@pX!2i!BHFq@(`?()b{g^!Oc0!}bcz`_{crrC@${oEKZ&7nM%uur6so z8d9(?_OM3<-pt0(OTJRQx;8qnhqn84P=Sua z(tVvXy)!c!2^ad#-8~n{*{4!|*?J<{Ae>_%N80jz{2|Fw8H>jIDqoPVDqzaxcZrD# zpK2VJ45V=u6lI!dsUf!6L7$+RS$t*IrJ#SXIY|6|&hca_@z( zh=Nd>qOM%~`SQe4E`h=#$7wXr*sW+~eLq92?Q?>tr=6S96^$kA3Lq6kzgSFb}jdM@9 z%=<4~nby|<3h%@YPM^9#+DmAhkxw)34I*(8ajNnL^}`XG(NC$4H~w0nA&pI5^;iq!wUA)8woT4ZF^~y=Qx?TG zaQ(zmN?Db5wp&`)P*2olnjJWt0pV~GV4$G-p5?JX;b0;L*@b_93P#|AnePquk-_&K zpa%5^KZqTuPN)Giq;O9UCv_7E(Eo`2W?tDjd5N+p7ws2Z%73CE$FqNv;F`(8$iYeiQERe zGdti0f}Js72%Oj{gJ7rrkHAhEvx9X1pnoiYzd@QjFC3o=;FAD+!jDCgf&usoz>%Hd z$e^q;|7bW8c-wnoe5Jj7T-?zpl0ELe{P&%1*k5AaBem-}}CbsK%179tDMhD?Jvq+a!6o%l0pQW%FZ ziRtPoAzeXxpxCN=tcvVW}=|QCoaq^H4`MYR*Hb z^aD|NrsLfr9Wh-bHBFyRnP!19x`(F$xqoE7QS#-f>%ZtIQa4dQX(}oGaJR3YCCW(4 zLILS5%n??;B)m2tp~UNwcGoi6*~7E&KDI%XoZ==_OhkongjwH_rmjMNc{nbN%abKU ztI+?0s+dDwgSD|;WCJ%wE;VxS&EnbuYfgsna9crY$E-C*ZS>ThtcxlX0Ti7S<$gT- zYS8G)`L|7+@R~ujXLKU70}j&DsVh0BQ+gpiIoj2hi>U=vddC>jaXcLm(Z=%3f+Jc1 z2T)C2xw$ujgZbBwCG*_bI4Xc!zP?uLdS5SfWXdm)WBQ|fdeDBouRRq4&VFOW_03CD zG`Np0hlrcN4E%WP;Gmy7CPBILn%N11TAVq5P9P(aFL+Lky8Ot-trz*$^*K?Q=H6x} zj%n4YH)r~vqQ)I_-3q!q<7-H{_BpxKGAkX_rS!ob-VE*~D%mPUNYzRm2!+BL3L{NFHW}ai+#b|eK zQN4RFYTFruo=aHvYEHgtahnCycQxOOkOh$0`*2JU{cT6{0bR}){5V3eIUKnCf92D= z-3}yXZ~_!!Ay`mwLvvcB*?4j>Wd%c-?upFJo>R8J4u&V7b@0 zR?E9E@c`%d;EARl|Kp%edyCP-_HTc2iR5>GCQ>GCMKAxcy`%M(Fo9@dNnA=9Gt$u3 zxxM=EzR)T?w$uwL&#yrp{B9oWC`VVMsXI{Ee$}3(kf+Az*}cQMN7uxjCksAZL2q;! z;BMvSO&w|xnXm;`Pe}xv>-LPMOb!zq4cuCI$0Z}%<>O}|D1z0l;D_i9@$>l_K6B2{ zdwhH{L*E`+lMv*qj><_wKDV5R)ls7lL+DnqE|?pr98=B^`*rHWM>^qH5iJ6P&qzc? zE9W^be5hd#foTLFFb(`zTo??BATYfI>so%?A(A%1^cbwV559llkJ`;z+$?e4a z^KOGCNiygEBMb2T%3#dgKNn!vjK2#qz_uWxfB=xPNCZL_xt)uH%o?otR{Wp3KcH>@ zF|psR^OTHt1|Anp7nv&z>q>76vNlL5!DjTvOjy4-VMOz=G$)NHT@#VmeaS}_b;jM} zl4)GG*ghc#ri;zTOP(7=+fuP}K2*DOn|x~SyjE2du@Uulw&(M-Kq|tGM&vL@nXd9I zS6#3+*R7hqAQfu*4;K4x8wA_Q1fz?L>E(TO-g!5=xp29tPQ{Z;*vqg?wkyuu`lzz* z8UxQNUL4Z?`V8GxaqFT6%0SBC4UH}eN^!r8ZLlswBa~GVRmEG#R=}hNDpX#l3rWuov`CZoHdcD=IA3RwWQ`Mc^Wdc2)Z^)Oqi#Wr?`rP_hq) zA7>rQ*-30U!Ifg$mBz;2?$o1@5bLqJu4d4&p>lQoU_I2wSteo^Dxd2P-{ z8E2~q_mhCxw`|k^0A-hKP<6~ z%3vm{@>eiI(sh1jqJPo%@AVdD(iI57_X5;AL%=A1=f0p&2!%M@%$!X=l=-r4+~$FS zKDgu8Tx8#vG$c1-s$lS=FQdePacojWz(x7jTE&ZB6l)r;)aEolNquSUa3XDH1*>c9 z#j^G`Atde0ex%?y+~=o>Ggr$DKU7oH;nm)ALvR9foKrWhaIVRvW<;*QzBH+v&$}Pt z=R$k`{wLU{4)KRFwPguZos%o?X|B8oZN7M^G^sl?TY@m866~FGSDR9B(N45UAmH`b zNogsLw#?eEPX#SMePm_pbJe}pXBP1=S>f%cjG}ST|f;XL~P8Qch-}zX>9m_e&T;$#Zmm!Jd24i9KoZ;$&t+cl8QO@JQ}bp z2j6}F$u=t7RAcXJ{Raw^73%M<7Weo9<_8IRTC^P>myhDxY6WeP7Pi_87DpqI;Rmp2 zrvw|kX?gqA9uJ~7wd;ks1)Z3DIQU|SdiK$VcIDPv0X)j{ z=6=Q1G3xrNMxFFo6e><(%Z_!h6wT1N4!tdp4;d}xw-$oMs1fsTPEaJ=i=sqL1ag&4 zrnem)m)3k#xb)V(Iv-lkOLaA{ZL_MbS=0IqYZjE;fM0(nQjLL;YUCeM@IMVr{}u|~ zy<*lHH<5eV&bd=LDgM;!ml^w?{(pns4~qOf=*dYUW&T}3?=SiWsdqLh&he5|W{||- z69IhOZ`d~;P~M4uAp1uAWr#J@)A>fdH4IIp?HwG^es0)*fqNVNhI^a*tK56fSd4V5NnriYzVXLwGm4QmQpkPops z!nKedq?=$2Au7&;w(k0?rp(`y>1|N zg||);rN7+!5G(W8&L*SZTy^r(%XG*1%U{phg}rOkrAatAqBza2>y5c~j?cXzD=+u( zdRR!x+4#Vl?p?!KpSd>`dXtu#3aC>e^Q*6Ol)}|7JgCHF@+J}UKx^+ViH}hlQtFRTYX-9;*H3I@}mBfyM^kx&F$=J z`a_YQ#WM039f4Pmu}Hl^%(>F2(zlw2Qw_ae=X5om9CaBmukRcH>b72t z>2J{1S{qDWJHW0WUDa+uE;UD+ZHRg^M6s6T>mSZxB+aG4pR<+tQC}G zWw*KaTF(C-oyZlS24#gk6y)M`FftAp3k2F?sq6uXRUZK?^iT%A;&qK(%GsbchR5ZH z{>^x`>oGGq_~JBj$gm4VIl#Z4{s;dYJIBz-?A>_@ zIA0hZ4ht#-RwZmoo-J&AL<3nTX)0r7yDfJ{U>6mD`*wr4|8?zoIlZ z9MQ>eOWEInO|YN&V%c$}{AYexu``XEM`?d8x_|#Df&ilhi6hmvIbZ#IZ|Am<^k=+v zw~$1D>H^?ipFO=b z2;kHH3;f{E7Y-_@ z;xZgkG;FnlZeO&llUc|f!^f$$dX*G(=Fn{kxD>Z!zlQ;ykAz~wv_E3RZeMpzLBFT3 z(|IvV)yX?mu`>O*+m3TKQ_Plc#mH@)N3y*9u�Q`Ssy68Q3pJ*Q4?78tE6iEZ%EU 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 literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 new file mode 100644 index 000000000000..a193686a117f --- /dev/null +++ b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 @@ -0,0 +1,197 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } catch {} +} +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 +# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgLwxfLTEa +# f5cZ43nGFJSGxV1AZMu24c5Ln5TdSBDWTncwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCyf/LJa/Z5JNuepgZfSusBSM6DXD1kjal/mMJvKd6B +# 4TxMLoCwxn21TOmsVf9HXQCLZ12ZkJYWaOtCjkfXF8abr9YmnjfXKYy7wMAvwh/Z +# JCi3D4MhYmy5DzVE5S+y+KTBuH4cbiQ85ASomr7AH+8+Z/Ib8a9D2+dWki8UibWv +# dLIzHB2BCcg1nq7vXZ+a3lsdzqEAlaHL94R781l9PoKA4PAPCyu4fI7E3ZtiLvGJ +# wh+lWa/dqBE2J8jxbevUzgZCKswoATpOfZYnfyJj4COG4/sq8lkVUyZs5Qf3uHxl +# 2jaAoRvIqfW4XtZE8N4xIKt9urv/EnBGD6AHdJSTfTnZoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPAxdvgOnxDyn4RapJdVAf5LnUuXi5jJH8/S/ti2 +# sRm6AgZf25iWx0QYEzIwMjAxMjI0MDkzNTU1LjY1NFowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjo0RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABK5PQ7Y4K9/BHAAAA +# AAErMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0RDJG +# LUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJb6i4/AWVpXjQAludgA +# NHARSFyzEjltq7Udsw5sSZo68N8oWkL+QKz842RqIiggTltm6dHYFcmB1YRRqMdX +# 6Y7gJT9Sp8FVI10FxGF5I6d6BtQCjDBc2/s1ih0E111SANl995D8FgY8ea5u1nqE +# omlCBbjdoqYy3APET2hABpIM6hcwIaxCvd+ugmJnHSP+PxI/8RxJh8jT/GFRzkL1 +# wy/kD2iMl711Czg3DL/yAHXusqSw95hZmW2mtL7HNvSz04rifjZw3QnYPwIi46CS +# i34Kr9p9dB1VV7++Zo9SmgdjmvGeFjH2Jth3xExPkoULaWrvIbqcpOs9E7sAUJTB +# sB0CAwEAAaOCARswggEXMB0GA1UdDgQWBBQi72h0uFIDuXSWYWPz0HeSiMCTBTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBnP/nYpaY+bpVs4jJlH7SsElV4cOvd +# pnCng+XoxtZnNhVboQQlpLr7OQ/m4Oc78707RF8onyXTSWJMvHDVhBD74qGuY3KF +# mqWGw4MGqGLqECUnUH//xtfhZPMdixuMDBmY7StqkUUuX5TRRVh7zNdVqS7mE+Gz +# EUedzI2ndTVGJtBUI73cU7wUe8lefIEnXzKfxsycTxUos0nUI2YoKGn89ZWPKS/Y +# 4m35WE3YirmTMjK57B5A6KEGSBk9vqyrGNivEGoqJN+mMN8ZULJJKOtFLzgxVg7m +# z5c/JgsMRPvFwZU96hWcLgrNV5D3fNAnWmiCLCMjiI8N8IQszZvAEpzIMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0 +# RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUARAw2kg/n/0n60D7eGy96WYdDT6aggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqLMwIhgPMjAyMDEyMjQwOTQyMTFaGA8yMDIwMTIyNTA5NDIxMVowdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446oswIBADAKAgEAAgIhwwIB/zAHAgEAAgIRjzAK +# AgUA44/6MwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBABUdoRkAdWw+UMZK +# CPVyA5MwL4Qgt4DYpLk87wNon60fDkSNTPMsNPv3PwnFNwOWJvTCY5zLvzheHSUe +# KhizpPgF8P2Hcv3TcLLJWXSAuWGI12fuxE3PVS47FvESnG022eE9AfW+167OhpV1 +# dfiPE6YXGA0KiuP+ay4fP1uj70hTMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAErk9Dtjgr38EcAAAAAASswDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgS4ozfWHqktk+MEJilHY/UxzTHnVN20GLkcRZZWnOAlcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCBkJznmSoXCUyxc3HvYjOIqWMdG6L6tTAg3KsLa +# XRvPXzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# K5PQ7Y4K9/BHAAAAAAErMCIEIIJb4J1LeSwa+sbSKDnA6WZNDclHhr8GnJbQnyv8 +# Bs3UMA0GCSqGSIb3DQEBCwUABIIBAFdfTvMDN/hI/of9CFSS0y0koAPYzKy0AoP9 +# wjZGQc1OGjcGmRqXldY9RBJNQTWxkR5LxpaLwtTadjMW8O+b19Soki7KgCEEB2Ch +# j2sPeaXyX1aoyIYlGs/X2dqCimJ4Qce/oHrX9I0Fumfcc1a9BiKSieweYAwYQc73 +# B/E17/RHAGcYFumjS+y1pJhuJdDJuGv7FOT+YV1YI1LBk/owv2HqT7LwDYvLYtEV +# GxGaRb96BEKoQYNIgNS2a9e9SYoAAJaNCbgtbI7COCjCYgIA03m86MWU52EduCD1 +# a82uKezFyx5R1UFMPak4rRn6W/PEpTS2tErb4PdeCKlSbjugrfM= +# SIG # End signature block diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..adf2f550a195376f53fd2d5526e117aed8aecd4f GIT binary patch literal 160136 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 literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..11a257e7d5f48fbd806a3fa14d9390de4ba5b5e1 GIT binary patch literal 216960 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 literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf88b02fef1f7d5a54bac4638b934b25c8bff4a9 GIT binary patch literal 37256 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 literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll new file mode 100644 index 0000000000000000000000000000000000000000..3243f7ea554aa660a68813863e1c54ce4bd1ce61 GIT binary patch literal 1377736 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 D35!!#b*+qiP5n?Xl?t; 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�h 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 literal 0 HcmV?d00001 diff --git a/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/desktopvirtualization/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..609262ff1207f8d37913773ed1e033d3f6dddde2 GIT binary patch literal 701336 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

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

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